Day25--arrays类的四种方法
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
用于将数组转换为字符串表示形式,来打印数组的内容
Arrays.toString()
方法的主要作用是将数组的内容转换为一个字符串,该字符串以方括号 []
包围,并用逗号分隔每个元素。对于基本数据类型(如 int、double 等),它会直接显示元素的值。对于对象数组,它会调用每个对象的 toString()
方法来获取其字符串表示。
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
// 基本数据类型数组
int[] intArray = {1, 2, 3, 4, 5};
System.out.println(Arrays.toString(intArray)); // 输出: [1, 2, 3, 4, 5]
// 对象数组
String[] stringArray = {"apple", "banana", "cherry"};
System.out.println(Arrays.toString(stringArray)); // 输出: [apple, banana, cherry]
// 多维数组
int[][] multiIntArray = {{1, 2}, {3, 4}, {5, 6}};
System.out.println(Arrays.toString(multiIntArray)); // 输出: [[I@1b6d3586, [I@4554617c, [I@74a14482]
// 注意:对于多维数组,Arrays.toString() 只会打印数组的引用,而不是其内容。
// 要打印多维数组的内容,可以使用 Arrays.deepToString() 方法。
System.out.println(Arrays.deepToString(multiIntArray)); // 输出: [[1, 2], [3, 4], [5, 6]]
}
}
注意事项
- 对于多维数组,
Arrays.toString()
只会打印数组的引用,而不是其内容。要打印多维数组的内容,可以使用Arrays.deepToString()
方法。 - 对于包含
null
元素的数组,Arrays.toString()
会显示null
。
2.append:
用于在字符串末尾添加字符或字符串
示例:
1.通过 StringBuilder 的构造函数创建了一个空的名称为sb的字符串
2.在这个字符串后面添加Hello
3.在这个字符串后面添加空格
4.在这个字符串后面添加World
5.输出最终的字符串
示例:
//首先通过 StringBuilder 的构造函数创建了一个空的名称为sb的字符串。
StringBuilder sb = new StringBuilder();
// 2. 在这个字符串后面添加Hello
sb.append("Hello");
// 3. 在这个字符串后面添加空格
sb.append(" ");
// 4. 在这个字符串后面添加World
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
数组填充
两个小例子:
-
a数组 {1,2,3,4,9090,31231,543,21,3,23},用0代替a数组里面的每一个元素
2. a数组 {1, 2, 3, 3, 4, 21, 23, 543, 9090, 31231},a数组里面的下标2、3元素被0代替
//4.数组填充
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]
//4.数组填充
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 - 要存储在数组的所有元素中的值