Day25--arrays类
Arrays 类
Arrays 类是数组的工具类,位于 java.util.Arrays。
由于数组对象本身没有很多方法可供调用,API 中提供了 Arrays 工具类以供使用,可对数组对象进行一些基本操作。
Arrays 类中的方法都是 static 修饰的静态方法,使用时可直接用类名调用(是 “不用” 而不是不能通过对象调用)。具有以下常用功能:
- 给数组赋值:通过 fill 方法。
- 对数组排序:通过 sort 方法,按升序。
- 比较数组:通过 equals 方法比较数组中元素值是否相等。
- 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
在代码里输入Arrays,回车,就引入了arrays的工具包
选中Arrays--ctrl---Arrays类的源码--structure--arrays的方法
1.Arrays.toString
打印数组元素:
//打印数组元素
int[] a={1,2,3,4,9090,31231,543,21,3,23};
System.out.println(a);//[I@10f87f48
//不能直接输入a来打印数组元素
System.out.println("++++++++++++++++++++++++++++++++++++++++++");
//Arrays. 用Arrays的方法
//Arrays.toString 打印数组元素
System.out.println(Arrays.toString(a));//[1, 2, 3, 4, 9090, 31231, 543, 21, 3, 23]
System.out.println("++++++++++++++++++++++++++++++++++++++++++");
printArray(a);
}
//写方法:输出每个元素加【】
//重复造轮子:已经有的方法,我们不用再造方法了。我们下面的只是说明,系统自带的方法我们也可以写出来的
public static void printArray(int[] a){
System.out.print("[");
for (int i = 0; i < a.length; i++) {
if(i==a.length-1){
System.out.print(a[i]);
}else{
System.out.print(a[i]+", ");
}
}
System.out.print("]");
}
2.append:
用于在字符串末尾添加字符或字符串
示例:
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" ");
sb.append("World");
System.out.println(sb.toString()); //Hello World
StringBuffer sbf = new StringBuffer();
sbf.append(123);
sbf.append('!');
System.out.println(sbf.toString()); //123!
深度理解:与其他类似操作的区别
-
与
String
的
+
操作符的区别
- 使用
+
操作符连接字符串在 Java 中虽然方便,但在大量字符串拼接的情况下效率较低,因为每次+
操作都会创建新的String
对象。而StringBuilder
和StringBuffer
的append
方法是在原对象上进行操作,避免了频繁创建新对象的开销。
- 使用
-
与
List
集合的
add
方法的区别
List
集合的add
方法是用于向列表中添加元素,列表中的元素可以是各种对象类型。而StringBuilder
和StringBuffer
的append
方法是专门用于构建字符串,添加的内容最终会组成一个连续的字符串。
3.Arrays.sort()
数组进行排序(升序)
//数组进行排序
int[] a={1,2,3,4,9090,31231,543,21,3,23};
Arrays.sort(a);//数组进行排序: 升序
Arrays.toString(a);//打印数组元素
System.out.println(Arrays.toString(a));//输出排完序后的a [1, 2, 3, 3, 4, 21, 23, 543, 9090, 31231]
4.Arrays.fill
数组填充
//3.数组填充
int[] a={1,2,3,4,9090,31231,543,21,3,23};
Arrays.fill(a,0);//用0代替a数组里面的每一个元素
System.out.println(Arrays.toString(a));//[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
//3.数组填充
int[] a={1, 2, 3, 3, 4, 21, 23, 543, 9090, 31231};
Arrays.fill(a,2,4,0);//Arrays.fill(a,2,4,0) a数组里面的下标2、3元素被0代替
System.out.println(Arrays.toString(a));//[1, 2, 0, 0, 4, 21, 23, 543, 9090, 31231]
fill类型讲解:
public static void fill (byte [] byte val) 将指定的字节值分配给指定字节数组的每个元素。
参数;
a - 要填充的数组
val - 要存储在数组的所有元素中的值