java.util.Arrays
此类包含用来操作数组的各种方法,比如排序和搜索等。其所有方法均为静态方法,调用起来非常简单。简单来说: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)
????????返回指定数组的内容的字符串表示形式
package com.suyv.arrays;
import org.junit.Test;
import java.util.Arrays;
/**
*@Author: 憨憨浩浩
*@CreateTime: 2023-12-13 14:49
*@Description: TODO
*/
public class ArrayDemo01 {
int[] a = {1,15,95,23,36,42};
int[] a1 = {1,15,95,23,36,42};
@Test
public void Test01(){
// copyOf(int[] original, int newLength)
// 复制指定的数组,用零截取或填充(如有必要),以便复制具有指定的长度。
int[] arr = Arrays.copyOf(a,10);
System.out.println(Arrays.toString(arr)); // [1, 15, 95, 23, 36, 42, 0, 0, 0, 0]
// copyOfRange(int[] original, int from, int to)
// 将指定数组的指定范围复制到新数组中。
int[] arr1 = Arrays.copyOfRange(a,0,3);
System.out.println(Arrays.toString(arr1)); // [1, 15, 95]
int[] arr2 = Arrays.copyOfRange(a,4,8);
System.out.println(Arrays.toString(arr2)); // [36, 42, 0, 0]
}
@Test
public void Test02(){
// sort(int[] a)
// 按照数字顺序升序排列指定的数组。
Arrays.sort(a);
System.out.println(Arrays.toString(a)); // [1, 15, 23, 36, 42, 95]
// sort(int[] a, int fromIndex, int toIndex)
// 按升序排列数组的指定范围。
Arrays.sort(a1,0,4);
System.out.println(Arrays.toString(a1)); // [1, 15, 23, 95, 36, 42]
}
@Test
public void Test03(){
// equals(int[] a, int[] a2)
// 如果两个指定的int数组彼此 相等 ,则返回 true 。
int[] a2 = {1,15,95,23,36,42};
System.out.println(Arrays.equals(a1,a2)); // true
int[] a3 = {1,95,15,23,36,42};
System.out.println(Arrays.equals(a1,a3)); // false
}
@Test
public void Test04(){
// binarySearch(int[] a, int key)
// 使用二叉搜索算法搜索指定的int数组的指定值。
// 使用二分查找时先进行排序
Arrays.sort(a);
System.out.println(Arrays.toString(a)); // [1, 15, 23, 36, 42, 95]
// 返回值大于等于0表示查询到该元素
System.out.println(Arrays.binarySearch(a,95)); // 5
// 返回值小于0表示插入点,即如果把该元素插入到该数组中,他的位置是多少
// 即把返回值取绝对值后-1的值为插入该数组的索引值
System.out.println(Arrays.binarySearch(a,20)); // -3
System.out.println(Arrays.binarySearch(a,0)); // -1
}
@Test
public void Test05(){
// fill(int[] a, int val)
// 将指定的int值分配给指定的int数组的每个元素。
int[] arr = new int[10];
Arrays.fill(arr,5);
System.out.println(Arrays.toString(arr)); // [5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
}
}
java.lang.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) |
package com.suyv.math;
import org.junit.Test;
/**
*@Author: 憨憨浩浩
*@CreateTime: 2023-12-13 16:22
*@Description: TODO
*/
public class MathDemo {
double d1 = 25.1;
double d2 = 25.5;
double d3 = 25.9;
@Test
public void Test00(){
System.out.println(Math.PI); // 3.141592653589793
System.out.println(Math.E); // 2.718281828459045
}
@Test
public void Test01(){
// Math.ceil(double d)
// 向上取整
System.out.println(Math.ceil(d1)); // 26.0
System.out.println(Math.ceil(d2)); // 26.0
System.out.println(Math.ceil(d3)); // 26.0
}
@Test
public void Test02(){
// Math.floor(double d)
// 向下取整
System.out.println(Math.floor(d1)); // 25.0
System.out.println(Math.floor(d2)); // 25.0
System.out.println(Math.floor(d3)); // 25.0
}
@Test
public void Test03(){
// Math.round(double d)
// 四舍五入
System.out.println(Math.round(d1)); // 25
System.out.println(Math.round(d2)); // 26
System.out.println(Math.round(d3)); // 26
}
@Test
public void Test04(){
// Math.random()
// 取[0.0,1.0)的随机数
System.out.println(Math.random());
// 取[0,100]的随机数
int a = (int) Math.round(Math.random() * 100);
System.out.println(a);
}
@Test
public void Test05(){
// Math.pow(double x, double y)
// 取x的y次幂
System.out.println(Math.pow(2, 2)); // 4.0
System.out.println(Math.pow(2, 3)); // 8.0
}
@Test
public void Test06(){
// Math.sqrt(double d)
// 取算术平方根
System.out.println(Math.sqrt(9)); // 3.0
System.out.println(Math.sqrt(4)); // 2.0
}
@Test
public void Test07(){
// Math.max(doubel d1,double d2)
// 取较大值
System.out.println(Math.max(d1, d2)); // 25.5
}
@Test
public void Test08(){
// Math.min(doubel d1,double d2)
// 取较小值
System.out.println(Math.min(d1, d2)); // 25.1
}
}
java.lang.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虚拟机
package com.suyv.system;
import org.junit.Test;
import java.util.Arrays;
import java.util.Scanner;
/**
*@Author: 憨憨浩浩
*@CreateTime: 2023-12-13 21:55
*@Description: TODO
*/
public class SystemDemo {
@Test
public void Test01(){
// 测试System类中的属性
// “标准”输入流。
Scanner scan = new Scanner(System.in);
// “标准”输出流。
System.out.println("Hello"); // Hello
// “标准”错误输出流。
System.err.println("Hello"); // Hello
}
@Test
public void Test02(){
// currentTimeMillis()方法
// 时间戳
// 常用来测试程序运行的时间
System.out.println(System.currentTimeMillis()); // 1702476218177
}
@Test
public void Test03(){
// arraycopy()方法
// 第一个参数是要复制的数组,第二个参数是从该数组那个索引开始复制,
// 第三个参数是复制到那个数组,第四个参数是复制到该数组的那个索引,第五个参数是复制多少长度的第一个数组
int[] arr = {11,22,33};
int[] arr1 = new int[10];
System.arraycopy(arr,1,arr1,2,1);
System.out.println(Arrays.toString(arr1)); // [0, 0, 22, 0, 0, 0, 0, 0, 0, 0]
}
@Test
public void Test04(){
// 调用垃圾回收器
System.gc();
// 正常终止当前运行的Java虚拟机
System.exit(0);
}
}