JDK提供的java.util.Arrays类包含了常用的数组操作,为了开发提供了方便,Arrays类包含了排序、查找、填充、打印内容等常见的操作。
package chap4_数组;
/**
* 使用Arrays类输出数组中的元素
* 简单的写Arrays里的工具类toString方法
* 使用Arrays类对数组元素进行排序一
*/
import java.util.Arrays;
public class Test06 {
public static void main(String[] args) {
int[] array = {2,6,8,4,9,3,6,1,4,0,5,7};
System.out.println(array);//[I@7f31245a,打印数组引用的值
System.out.println(Arrays.toString(array));//打印数组元素的值
toString(array);
Arrays.sort(array);
System.out.println(Arrays.toString(array));
}
//简单的写Arrays里的工具类toString方法
public static void toString(int[] a){
for (int i=0;i<a.length;i++){
if (i==0)
System.out.print("[");
if (i==a.length-1){
System.out.println(a[i]+"]");
}else
System.out.print(a[i]+", ");
}
}
}
菜鸟雷区
此处的Arrays.toString()方法是Arrays类的静态方法,不是Object的toString()方法。
package chap4_数组;
import java.util.Arrays;
/**
* 使用Arrays类对数组元素进行排序二(Comparable(可比较的)接口的应用)
*/
public class Test07 {
public static void main(String[] args) {
Man[] msMans = {new Man(3,"a"), new Man(60,"b"), new Man(2,"c")};
Arrays.sort(msMans);
System.out.println(Arrays.toString(msMans));//[c, a, b]
}
}
class Man implements Comparable{
int age;
int id;
String name;
public Man(int age,String name){
super();
this.age = age;
this.name = name;
}
public String toString(){
return this.name;
}
public int compareTo(Object o){
Man man = (Man) o;
if (this.age < man.age){
return -1;
}
if (this.age > man.age){
return 1;
}
return 0;
}
}
package chap4_数组;
import java.util.Arrays;
/**
* 使用Arrays类实现二分法查找
*/
public class Test08 {
public static void main(String[] args) {
int[] array = {2,6,8,4,9,3,6,1,4,0,5,7};
System.out.println(Arrays.toString(array));
Arrays.sort(array); //使用二分法查找,必须先对数组进行排序
System.out.println(Arrays.toString(array));
//返回排序后新的索引位置,若未找到返回负数
System.out.println("该元素的索引:"+ Arrays.binarySearch(array,12));
}
}
package chap4_数组;
import java.util.Arrays;
/**
*使用Arrays类对数组进行填充
*/
public class Test09 {
public static void main(String[] args) {
int[] array = {2,6,8,4,9,3,6,1,4,0,5,7};
System.out.println(Arrays.toString(array));
//范围:[2,4)
Arrays.fill(array,2,4,303);//将[2,4)索引的元素替换为303
System.out.println(Arrays.toString(array));
}
}