当前位置:   article > 正文

14--常用类和基础API--04

14--常用类和基础API--04

1、Arrays类

1.1 Arrays类概述

java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法,调用起来非常简单。简单来说:Arrays这个是专门用来操作数组相关的工具类

1.2 Arrays类常用方法

public static int[] copyOf(int[] original, int newLength)

        复制指定的数组,用零截取或填充(如有必要),以便复制具有指定的长度。

public static int[] copyOfRange(int[] original, int from, int to)

        将指定数组的指定范围复制到新数组中。

public static void sort(int[] a)                 底层使用快速排序

        按照数字顺序升序排列指定的数组。

public static void sort(int[] a, int fromIndex, int toIndex)

        按升序排列数组的指定范围。

public static boolean equals(int[] a, int[] a2)

        如果两个指定的int数组彼此 相等 ,则返回 true 。

public static int binarySearch(int[] a, int key)                使用前先排序,底层使用二分查找

        使用二叉搜索算法搜索指定的int数组的指定值。

public static void fill(int[] a, int val)

        将指定的int值分配给指定的int数组的每个元素。

public static String toString(int[] a)

        返回指定数组的内容的字符串表示形式

  1. package com.suyv.arrays;
  2. import org.junit.Test;
  3. import java.util.Arrays;
  4. /**
  5. *@Author: 憨憨浩浩
  6. *@CreateTime: 2023-12-13 14:49
  7. *@Description: TODO
  8. */
  9. public class ArrayDemo01 {
  10. int[] a = {1,15,95,23,36,42};
  11. int[] a1 = {1,15,95,23,36,42};
  12. @Test
  13. public void Test01(){
  14. // copyOf(int[] original, int newLength)
  15. // 复制指定的数组,用零截取或填充(如有必要),以便复制具有指定的长度。
  16. int[] arr = Arrays.copyOf(a,10);
  17. System.out.println(Arrays.toString(arr)); // [1, 15, 95, 23, 36, 42, 0, 0, 0, 0]
  18. // copyOfRange(int[] original, int from, int to)
  19. // 将指定数组的指定范围复制到新数组中。
  20. int[] arr1 = Arrays.copyOfRange(a,0,3);
  21. System.out.println(Arrays.toString(arr1)); // [1, 15, 95]
  22. int[] arr2 = Arrays.copyOfRange(a,4,8);
  23. System.out.println(Arrays.toString(arr2)); // [36, 42, 0, 0]
  24. }
  25. @Test
  26. public void Test02(){
  27. // sort(int[] a)
  28. // 按照数字顺序升序排列指定的数组。
  29. Arrays.sort(a);
  30. System.out.println(Arrays.toString(a)); // [1, 15, 23, 36, 42, 95]
  31. // sort(int[] a, int fromIndex, int toIndex)
  32. // 按升序排列数组的指定范围。
  33. Arrays.sort(a1,0,4);
  34. System.out.println(Arrays.toString(a1)); // [1, 15, 23, 95, 36, 42]
  35. }
  36. @Test
  37. public void Test03(){
  38. // equals(int[] a, int[] a2)
  39. // 如果两个指定的int数组彼此 相等 ,则返回 true 。
  40. int[] a2 = {1,15,95,23,36,42};
  41. System.out.println(Arrays.equals(a1,a2)); // true
  42. int[] a3 = {1,95,15,23,36,42};
  43. System.out.println(Arrays.equals(a1,a3)); // false
  44. }
  45. @Test
  46. public void Test04(){
  47. // binarySearch(int[] a, int key)
  48. // 使用二叉搜索算法搜索指定的int数组的指定值。
  49. // 使用二分查找时先进行排序
  50. Arrays.sort(a);
  51. System.out.println(Arrays.toString(a)); // [1, 15, 23, 36, 42, 95]
  52. // 返回值大于等于0表示查询到该元素
  53. System.out.println(Arrays.binarySearch(a,95)); // 5
  54. // 返回值小于0表示插入点,即如果把该元素插入到该数组中,他的位置是多少
  55. // 即把返回值取绝对值后-1的值为插入该数组的索引值
  56. System.out.println(Arrays.binarySearch(a,20)); // -3
  57. System.out.println(Arrays.binarySearch(a,0)); // -1
  58. }
  59. @Test
  60. public void Test05(){
  61. // fill(int[] a, int val)
  62. // 将指定的int值分配给指定的int数组的每个元素。
  63. int[] arr = new int[10];
  64. Arrays.fill(arr,5);
  65. System.out.println(Arrays.toString(arr)); // [5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
  66. }
  67. }

2、Math类

2.1 Math类概述

java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的工具类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。

2.2 Math类常用方法

方法名

说明

Math.PI

常量,圆周率

public static double abs(double num)

取绝对值

public static double ceil(double num)

向上取整

public static double floor(double num)

向下取整

public static long round(double num)

四舍五入

public static int max(int a, int b)

求最大值

public static int min(int a, int b)

求最小值

public static double pow(double a, double b)

求a的b次幂

public static double random()

随机数,随机的范围[0,1)

  1. package com.suyv.math;
  2. import org.junit.Test;
  3. /**
  4. *@Author: 憨憨浩浩
  5. *@CreateTime: 2023-12-13 16:22
  6. *@Description: TODO
  7. */
  8. public class MathDemo {
  9. double d1 = 25.1;
  10. double d2 = 25.5;
  11. double d3 = 25.9;
  12. @Test
  13. public void Test00(){
  14. System.out.println(Math.PI); // 3.141592653589793
  15. System.out.println(Math.E); // 2.718281828459045
  16. }
  17. @Test
  18. public void Test01(){
  19. // Math.ceil(double d)
  20. // 向上取整
  21. System.out.println(Math.ceil(d1)); // 26.0
  22. System.out.println(Math.ceil(d2)); // 26.0
  23. System.out.println(Math.ceil(d3)); // 26.0
  24. }
  25. @Test
  26. public void Test02(){
  27. // Math.floor(double d)
  28. // 向下取整
  29. System.out.println(Math.floor(d1)); // 25.0
  30. System.out.println(Math.floor(d2)); // 25.0
  31. System.out.println(Math.floor(d3)); // 25.0
  32. }
  33. @Test
  34. public void Test03(){
  35. // Math.round(double d)
  36. // 四舍五入
  37. System.out.println(Math.round(d1)); // 25
  38. System.out.println(Math.round(d2)); // 26
  39. System.out.println(Math.round(d3)); // 26
  40. }
  41. @Test
  42. public void Test04(){
  43. // Math.random()
  44. // 取[0.0,1.0)的随机数
  45. System.out.println(Math.random());
  46. // 取[0,100]的随机数
  47. int a = (int) Math.round(Math.random() * 100);
  48. System.out.println(a);
  49. }
  50. @Test
  51. public void Test05(){
  52. // Math.pow(double x, double y)
  53. // 取x的y次幂
  54. System.out.println(Math.pow(2, 2)); // 4.0
  55. System.out.println(Math.pow(2, 3)); // 8.0
  56. }
  57. @Test
  58. public void Test06(){
  59. // Math.sqrt(double d)
  60. // 取算术平方根
  61. System.out.println(Math.sqrt(9)); // 3.0
  62. System.out.println(Math.sqrt(4)); // 2.0
  63. }
  64. @Test
  65. public void Test07(){
  66. // Math.max(doubel d1,double d2)
  67. // 取较大值
  68. System.out.println(Math.max(d1, d2)); // 25.5
  69. }
  70. @Test
  71. public void Test08(){
  72. // Math.min(doubel d1,double d2)
  73. // 取较小值
  74. System.out.println(Math.min(d1, d2)); // 25.1
  75. }
  76. }

3、System类

3.1 System类概述

java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。

3.2 System类常用方法

public static longcurrentTimeMillis()

        返回距离1970年1月1日0点0分0秒的毫秒数,时间戳

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

        复制数组

        第一个参数是要复制的数组,第二个参数是从该数组那个索引开始复制,

        第三个参数是复制到那个数组,第四个参数是复制到该数组的那个索引,

        第五个参数是复制多少长度的第一个数组

public static void gc()

        运行垃圾回收器

public static void exit(int status)

        终止当前运行的Java虚拟机

  1. package com.suyv.system;
  2. import org.junit.Test;
  3. import java.util.Arrays;
  4. import java.util.Scanner;
  5. /**
  6. *@Author: 憨憨浩浩
  7. *@CreateTime: 2023-12-13 21:55
  8. *@Description: TODO
  9. */
  10. public class SystemDemo {
  11. @Test
  12. public void Test01(){
  13. // 测试System类中的属性
  14. // “标准”输入流。
  15. Scanner scan = new Scanner(System.in);
  16. // “标准”输出流。
  17. System.out.println("Hello"); // Hello
  18. // “标准”错误输出流。
  19. System.err.println("Hello"); // Hello
  20. }
  21. @Test
  22. public void Test02(){
  23. // currentTimeMillis()方法
  24. // 时间戳
  25. // 常用来测试程序运行的时间
  26. System.out.println(System.currentTimeMillis()); // 1702476218177
  27. }
  28. @Test
  29. public void Test03(){
  30. // arraycopy()方法
  31. // 第一个参数是要复制的数组,第二个参数是从该数组那个索引开始复制,
  32. // 第三个参数是复制到那个数组,第四个参数是复制到该数组的那个索引,第五个参数是复制多少长度的第一个数组
  33. int[] arr = {11,22,33};
  34. int[] arr1 = new int[10];
  35. System.arraycopy(arr,1,arr1,2,1);
  36. System.out.println(Arrays.toString(arr1)); // [0, 0, 22, 0, 0, 0, 0, 0, 0, 0]
  37. }
  38. @Test
  39. public void Test04(){
  40. // 调用垃圾回收器
  41. System.gc();
  42. // 正常终止当前运行的Java虚拟机
  43. System.exit(0);
  44. }
  45. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/418803
推荐阅读
相关标签
  

闽ICP备14008679号