JAVA——Arrays类常用方法详解
程序员文章站
2024-03-05 23:13:25
...
JAVA——Arrays类常用方法详解
初始化:
int[] a = {3,4,1,2,77,5,-6,33213};
int[] a2 = {3,4,1,2,77,5,-6,33213};
int[] a3 = {1,3,4,6,8,9};
int[] b = {1,2,3};
System.out.println("数组a地址:");
System.out.println(a); // [[email protected]
// 数组打印
System.out.println("数组a元素:");
System.out.println(Arrays.toString(a)); // [3, 4, 1, 2, 77, 5, -6, 33213]
数组排序——sort方法
Arrays.sort(arrayName[ ]);
具体代码如下:
// 数组排序sort方法:对数组进行永久性排序
Arrays.sort(a);
System.out.println("数组a排序后:");
System.out.println(Arrays.toString(a)); // [-6, 1, 2, 3, 4, 5, 77, 33213]
sort方法默认为正序排列
数组填充——fill方法
Arrays.fill(arrayName[ ], value);
具体代码如下:
// fill填充数组
System.out.println("fill填充:");
Arrays.fill(a2,6666);
Arrays.fill(b,7777);
System.out.println(Arrays.toString(a2)); // [6666, 6666, 6666, 6666, 6666, 6666, 6666, 6666]
System.out.println(Arrays.toString(b)); // [7777, 7777, 7777]
从上面的输出结果可以看出,fill方法存在很大限制:只能根据数组所定义的长度使用同一个数值进行填充
数组比较——equals方法
Arrays.equals(arrayName1[ ], arrayName1[ ]);
Arrays.equals方法要求数组的个数相等,而且对应位置的元素也要相等,才会返回true,否则返回false。
具体代码如下:
// 数组比较
System.out.println(Arrays.equals(a, a2)); // 这里数组a已经被排序,所以返回false
int[] c1 = {1, 2, 3};
int[] c2 = {1, 2, 3};
System.out.println(Arrays.equals(c1, c2)); // true
其实java中equals和==的用法及细节很值得学习,这里推荐邦☆杠师傅的博文:java中equals以及==的用法
二分查找——binarySearch方法
注意:使用该方法前需要对数组进行排序
binarySearch方法可以接收一个参数或者三个参数,区别如下:
单个参数
Arrays.binarySearch(arrayName[ ], key);
具体代码如下:
System.out.println("binarySearch二分查找:");
System.out.println("-- 单个参数:");
// {1,3,4,6,8,9}
System.out.println(Arrays.binarySearch(a3,4)); // 2
System.out.println(Arrays.binarySearch(a3,5)); // -4
System.out.println(Arrays.binarySearch(a3,6)); // 3
System.out.println(Arrays.binarySearch(a3,7)); // -5
System.out.println(Arrays.binarySearch(a3,8)); // 4
System.out.println(Arrays.binarySearch(a3,9)); // 5
System.out.println(Arrays.binarySearch(a3,10)); // -7
方法binarySearch(arrayName[ ], key)的返回值规则是:当数组后只有一个参数时,key为索引键,若key在数组中,则返回数组对应的索引;若key不在数组中,binarySearch方法会返回 “-” 加 索引键插入数组的位置。
从上面代码的返回值可以发现,在数组a3中:
- key=4时,4在数组a3元素中第3个,索引为2
- key=5时,5不在数组a3中,索引键插入位置为第4个
- key=7时,7不在数组a3中,索引键插入位置为第5个
三个参数
Arrays.binarySearch(arrayName[ ], fromIndex, toIndex, key);
三个参数代表一个[fromIndex,toIndex]的范围和一个key索引键。
-
当key大于toIndex对应的值,不管在不在数组内,返回toIndex对应的位置即"-" 加 (endIndex+1)
// {1,3,4,6,8,9} System.out.println(Arrays.binarySearch(a3,1,3,7)); // -4 System.out.println(Arrays.binarySearch(a3,1,2,8)); // -3
-
当key小于fromIndex对应的值,不管在不在数组内,返回fromIndex对应的位置即"-" 加 (fromIndex+1)
// {1,3,4,6,8,9} System.out.println(Arrays.binarySearch(a3,2,4,1)); // -3 System.out.println(Arrays.binarySearch(a3,3,4,1)); // -4 System.out.println(Arrays.binarySearch(a3,3,4,0)); // -4
-
当key在对应的元素的值的范围内,并且在数组中,返回索引;不在则返回插入位置。规则类似于单个参数时的情形
// {1,3,4,6,8,9} System.out.println(Arrays.binarySearch(a3,2,4,6)); // 3 System.out.println(Arrays.binarySearch(a3,2,4,7)); // -5
参考博客:
上一篇: 2021-01-13
下一篇: Arrays