Arrays: 用于操作数组的工具类,里面都是静态方法。
首先在main方法中写一个打印的静态方法,因为打印次数较多;
public static void print(Object obj){
System.out.println(obj);
}
toString():将数组转换成字符串类型;
实例:
String[] arr = new String[]{"a","b","c"};
String str = Arrays.toString(arr);
print(str);
运行结果:
asList():将数组变成集合;
将数组转list集合的优点:
可以使用集合的思想和方法来操作数组中的元素;
注意:将数组变成集合,不可以使用集合中的增删方法。因为数组的长度是固定的。
如果增删,那么会发生UnsupportedOperationExcepion异常;
实例:
List<String> list = Arrays.asList(arr); //将数组转换为集合
print("contains:" + list.contains("a")); //判断该集合是否包含字符”a”;
print(list);
运行结果:
注意:在数组转换为集合时,
如果数组中的元素都是对象,那么变成集合时,数组中的元素就会直接转成集合中的元素;
如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的一个元素存在。
实例:
int[] nums = {2,3,4};
List<int[]> li = Arrays.asList(nums); //int 数组中的元素都是基本类型
print(li);
Integer[] num = {2,3,4};
List<Integer> lis = Arrays.asList(num);//Integer 数组中的元素都是对象
print(lis);
运行结果:
集合变数组, Collection接口中的toArray方法。
集合转数组的优点:为了限定对元素的操作,禁止对元素的增删。
List<String> al = new ArrayList<String>();
al.add("as1");
al.add("as2");
al.add("as3");
String[] strs = al.toArray(new String[al.size()]);//设置数组长度;
/*
*指定类型的数组长度多长才合适?
*当指定类型的数组长度小于了集合的size,那么该方法内部就会创建一个新的数组长度,长度为数组长度。
*当指定类型的数组长度大于了集合的size,就不会创建新的数组,而是使用传递进来的长度,多余补null值,
*所以创建一个刚刚好的数组长度最优。
*/
String st = Arrays.toString(strs);//将数组转换为字符类型;
print(st);
输出结果:
sort(), 将数组进行自然排序;
String[] str1 = {"ad","acd","ads","adf"};
print(Arrays.toString(str1));
Arrays.sort(str1);//数组自然排序
String str2 = Arrays.toString(str1);
print(str2);
输出结果: