int[] 转 List 常见的问题与解决方案
2023-12-29 05:21:29
在编程中,我们经常需要将 int[] 转为 List
问题:转换后取值异常
int[] arr = new int[]{1, 2, 3, 4, 5};
List<Integer> list = Arrays.asList(arr);
System.out.println(list.get(1)); // 报IndexOutOfBoundsException
这个代码中,我们将int数组arr转换为List
int[]的索引从0开始,而List
解决方案:使用正确索引
为了解决这个问题,我们需要使用正确的索引。int[]的索引从0开始,而List
int[] arr = new int[]{1, 2, 3, 4, 5};
List<Integer> list = Arrays.asList(arr);
System.out.println(list.get(0)); // 正确,打印2
问题:List不可变
另一个常见问题是,List
int[] arr = new int[]{1, 2, 3, 4, 5};
List<Integer> list = Arrays.asList(arr);
list.set(0, 10); // 报UnsupportedOperationException
解决方案:使用ArrayList
如果我们需要修改List中的元素,可以改用ArrayList
int[] arr = new int[]{1, 2, 3, 4, 5};
ArrayList<Integer> list = new ArrayList<>(Arrays.asList(arr));
list.set(0, 10); // 正确,将第一个元素修改为10
结论
int[]转List
int[] 转 List