1.Arrays类:
在Collection接口中有一个方法叫toArray把集合转换为Object数组.把集合转换为数组: Object[] arr = 集合对象.toArray();
数组也可以转换为集合(List集合):
public static <T> List<T> asList(T... a) 等价于public static <T> List<T> asList(T[] a).
import java.util.Arrays;
import java.util.List;
public class SetDemo8 {
public static void main(String[] args) {
List<String> list = Arrays.asList("a","b","c");
System.out.println(list);//[a, b, c]
List<Integer> list2 = Arrays.asList(1,2,3,4);//自动装箱
System.out.println(list2);//[1, 2, 3, 4]
int[] arr ={1,2,3,4};
List<int[]> list3 = Arrays.asList(arr);//直接把数组当做对象
System.out.println(list3);//[[I@3a5476a7]
}
}
通过Arrays.asList方法得到的List对象的长度是固定的,不能增,也不能减.
import java.util.Arrays;
import java.util.List;
public class SetDemo8 {
public static void main(String[] args) {
List<String> list = Arrays.asList("a","b","c");
System.out.println(list);//[a, b, c]
//list.remove(0);//报错 java.lang.UnsupportedOperationException
//list.add("d");//报错 java.lang.UnsupportedOperationException
}
}
为什么: asList方法返回的ArrayList对象,不是java.util.ArrayList而是Arrays类中的内部类对象.看源码,可以得知返回的ArrayList对象是Arrays类中的内部类对象.
2.其他方法
int binarySearch(type[] arr,type key) 使用二分法查找数组里某元素并返回其索引,若找不到返回负数.
void sort(type[] arr) 使用调优后的快速法对指定数组排序。
String toString(type[] arr) 返回指定数组内容的字符串表示形式。
public static type[] copyOf(type[] original, int newLength) 复制指定的数组,截取或用 0 填充(如有必要),以使副本具有指定的长度
class ArraysDemo
{
public static void main(String[] args)
{
int[] arr = {1,5,6,89,54,3,456,3234};
//数组打印
System.out.println(java.util.Arrays.toString(arr));
//数组排序
java.util.Arrays.sort(arr);
//排序后打印
System.out.println(java.util.Arrays.toString(arr));
//二分法查找指定元素在数组中的索引(注意:该数组必须是有序的)
int index=java.util.Arrays.binarySearch(arr,456);
System.out.println(index);
//数组的复制
int[] arr2 = java.util.Arrays.copyOf(arr,4);
//复制后打印该新的数组
System.out.println(java.util.Arrays.toString(arr2));
}
}
.