Arrays类:
是一个操作数组的类,其中全部是静态方法:
查找:(二分查找 前提必须有序)
binarySearch(?,?);
复制数组:
copyOf(?,length);
根据范围复制数组
copyOfRange(?,form,to);
判断两个数组是否相同
equals(?,?);
指定内容替换所有元素(所有数据)
file(?,value)
基于指定数组的内容返回哈希码。
hashCode(?[]);
排序:
sort(?);
返回指定数组内容的字符串表示形式。
toString(?);
static boolean deepEquals(Object[] a1, Object[] a2)
如果两个指定数组彼此是深层相等 的,则返回 true。
static int deepHashCode(Object[] a)
基于指定数组的“深层内容”返回哈希码。
static String deepToString(Object[] a)
返回指定数组“深层内容”的字符串表示形式
数组转换集合:
可以使用集合的思想和方法来操作数组中的元素。会发生:UnsupportedOperationException
注意:不可以使用List集合中的增删方法:因为数组的长度是固定的
asList(T t);
如果数组中的元素是对象 ,变成集合是,数组中的元素转成集合中的元素。
如果数组中的元素是基本数据类型,转成集合是,会把集合作为一个元素存到集合中。
Integer[] arr = {1,2,3,4};
List<Integer> list =Arrays.asList(arr);
System.out.println(list);
集合变数组:(ArrayList类中的)
Object[] toArray()
按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组。
<T> T[] toArray(T[] a)
按适当顺序(从第一个到最后一个元素)返回包含此列表中所有元素的数组;返回数组的运行时类型是指定数组的运行时类型。
指定类型数组的长度:
当指定类型数组的长度小于集合的size,该方法内部会创建一个新的数组
当指定类型数组的长度大于集合的size,该方法内部不会会创建一个新的数组,会使用该数组
集合变数组的原因:
为了限定对元素的操作,不能进行增删。
ArrayList<String> al = new ArrayList<String>();
al.add("aa1");
al.add("aa2");
al.add("aa3");
al.add("aa4");
String[] arr = al.toArray(new String[al.size()]);
System.out.println(Arrays.toString(arr));
|
|