一、创建数组
在Java中,数组是一种容器,可以存储大量相同数据类型的数据。创建一个数组可以使用以下代码:
int[] arr = new int[]{1, 2, 3};
其中,int[]表示整数数组,{1, 2, 3}是数组的初始值。也可以通过以下代码创建一个指定长度的数组:
int[] arr = new int[3];
这表示创建一个长度为3的整数数组,其中每个元素的值为0。
二、使用Arrays.asList方法转换数组为列表
Java中提供了一个Arrays类,其中有一个asList方法可以将数组转换为列表。以下代码展示了如何使用这个方法:
String[] arr = new String[]{"apple", "banana", "orange"}; List<String> list = Arrays.asList(arr);
首先创建了一个字符串数组,然后调用asList方法将数组转换为列表。转换后可以通过索引访问列表中的元素,也可以使用列表相关的方法操作列表。
三、转换后的列表不可改变
需要注意的是,通过asList方法转换出的列表是不可改变的,这表示不能向列表中添加或删除元素,也不能修改列表中元素的值。以下代码展示了一种尝试添加元素的方法:
String[] arr = new String[]{"apple", "banana", "orange"}; List<String> list = Arrays.asList(arr); list.add("pear");
当尝试向列表中添加元素时,会抛出java.lang.UnsupportedOperationException异常。如果需要修改列表中元素的值可以使用set方法,如下所示:
String[] arr = new String[]{"apple", "banana", "orange"}; List<String> list = Arrays.asList(arr); list.set(0, "pear");
这样可以将列表中索引为0的元素修改为"pear"。
四、基本类型数组和包装类数组的转换
在Java中,基本类型数组和包装类数组可以通过asList方法分别转换成对应的列表类型。以下代码展示了两种不同类型数组转换为列表的方法:
int[] arr1 = new int[]{1, 2, 3}; List<Integer> list1 = Arrays.stream(arr1).boxed().collect(Collectors.toList()); Integer[] arr2 = new Integer[]{1, 2, 3}; List<Integer> list2 = Arrays.asList(arr2);
第一种方法将基本类型数组先转换为对应的包装类数组,然后通过流式API的方式转换为列表。第二种方法直接将包装类数组转换为列表。需要注意的是,如果直接将基本类型数组转换为列表会抛出ClassCastException异常。
五、数组和列表的遍历
在将数组转换为列表后,可以通过多种方式遍历列表,以下代码展示了其中两种常用的方法:
String[] arr = new String[]{"apple", "banana", "orange"}; List<String> list = Arrays.asList(arr); //使用foreach遍历列表 for(String fruit : list) { System.out.println(fruit); } //使用迭代器遍历列表 Iterator<String> iterator = list.iterator(); while(iterator.hasNext()) { System.out.println(iterator.next()); }
第一种方法使用foreach语句遍历列表,可以直接访问列表元素。第二种方法先通过iterator方法获取迭代器对象,然后使用hasNext和next方法遍历列表。
六、小结
通过Arrays.asList方法可以将Java数组转换为列表,但需要注意转换的列表是不可改变的。同时,需要注意基本类型数组和包装类数组的转换问题。在遍历转换后的列表时,可以使用foreach语句或者迭代器来进行遍历。