问题 一:
代码如下:
int [] arr = new int[5]; arr[0]=1; arr[1]=2; arr[2]=3; arr[3]=4; arr[4]=5; List<int[]> list = Arrays.asList(arr); list.remove(0);
运行后 :
Exception in thread "main" java.lang.UnsupportedOperationException at java.util.AbstractList.remove(AbstractList.java:144) at test.testArr23.main(testArr23.java:18)
原因分析
Arrays.asList 返回的List类型为 Arrays 的内部类的类型 : private static class ArrayList<E> extends AbstractList<E>
只是 最简 实现的接口和抽象类,导致
AbstractList<E> 中未抽象方法 抛出异常<span style="font-family: Arial, Helvetica, sans-serif;">UnsupportedOperationException</span>.
类似如下:
<pre name="code" class="html"> public E set(int index, E element) { <span style="white-space:pre"> </span>throw new UnsupportedOperationException(); } public void add(int index, E element) { <span style="white-space:pre"> </span>throw new UnsupportedOperationException(); }
public E remove(int index) { <span style="white-space:pre"> </span>throw new UnsupportedOperationException(); }
</pre><pre name="code" class="html">问题 一:
代码如下:
int[] arr = new int[5]; arr[0] = 1; arr[1] = 2; arr[2] = 3; arr[3] = 4; arr[4] = 5; String[] strArr = new String[3]; strArr[0] = "11"; strArr[1] = "22"; strArr[2] = "33"; <h2> <span style="font-family:SimHei;"> List<String> strlist = Arrays.asList(strArr); List<int[]> arrlist = Arrays.asList(arr); </span><span style="font-family:SimHei;"> </span></h2> for (String j : strlist) { System.out.println(j); } for (int j : arrlist.get(0)) { System.out.println(j); }
相关推荐
`Arrays.asList`方法是Java中一个非常实用的工具,它允许我们将数组转换为`List`对象,以便在处理数组时可以利用`List`接口提供的便利。然而,这个方法有一些特殊的特性和限制,需要我们理解清楚才能正确使用。下面...
Java中使用Arrays.asList初始化ArrayList实例方法 在 Java 中,使用 Arrays.asList 方法可以快速创建一个 List 集合,但是需要注意的是,这个方法返回的 ArrayList 并不是 java.util.ArrayList 对象,而是一个内部...
Java中Arrays.asList()方法详解及实例 Arrays.asList()方法是Java中一个常用的方法,它将数组转换为列表。该方法的签名为`public static <T> List<T> asList(T... a)`,它可以接受变长参数,通常情况下是一个数组...
在Java编程中,`Arrays.asList()`方法是一个非常实用的工具,它允许我们将数组转换成一个`List`对象。这个方法在处理数组与集合之间的转换时,提供了很大的便利。下面我们将深入探讨`Arrays.asList()`方法的使用细节...
在Java编程中,Arrays.asList()方法和ArrayList是两种不同的方式来处理列表数据,它们之间存在显著的区别。这篇文章将深入探讨这两个概念以及它们在实际使用中的差异。 首先,Arrays.asList()是一个Java内置方法,...
asList.add("4"); // 会抛出UnsupportedOperationException异常 ``` 但是,asList的set方法可以正常调用,例如: ```java String[] strs = {"1","2","3"}; List<String> asList = Arrays.asList(strs); asList.set...
Arrays.asList、ArrayList的subList坑
Java中的`Arrays.asList()`方法是Java集合框架的一部分,它允许我们将数组或变长参数转换为一个固定大小的`List`对象。这个方法在处理数组与集合之间的转换时非常有用,尤其是当你需要使用集合API操作数组时。下面...
而一开始asList()的设计时用于打印数组而设计的,但jdk1.5开始,有了另一个比较更方便的打印函数Arrays.toString(),于是打印不再使用as
temp.addAll(Arrays.asList(lowercase)); } else if (type == TYPE.CAPITAL) { temp.addAll(Arrays.asList(capital)); } else if (type == TYPE.NUMBER) { temp.addAll(Arrays.asList(number)); } else if ...
当我们在实际业务开发过程中,难免会遇到数组转List的操作,通常我们所选择的就是上面的Arrays.asList进行操作,但是,对的但是来了,我们在使用的时候会发现基本数据类型的参数转化的结果会和我们想要的结果完全不...
这里我们使用了Arrays.asList()方法来创建一个不可变的List集合,并将其初始化为七个Person对象。 Arrays.asList() vs List.of() 需要注意的是,Arrays.asList()和List.of()都是用于创建List集合的方法,但是它们...
在本例中,由于使用了`Arrays.asList()`创建列表,因此实际的子类是`ArrayList`。`ArrayList`的`sort()`方法最终会调用`Arrays.sort()`。 `Arrays.sort()`的实现相当复杂,它采用了混合排序算法——TimSort。...
在Java中,我们可以将数组转换为List对象,利用`Arrays.asList()`方法即可实现。例如: ```java String[] animals = {"Tiger", "Lion", "Cat", "Dog", "Deer", "Chicken", "Sheep", "Horse", "Rabbit", "Snake"};...
通过`Arrays.asList(strArray)`可以直接将数组转换为List,但需要注意的是,这种方式生成的List是固定大小的,不支持添加(add)和删除(remove)操作。这是因为这个List实际上是`java.util.Arrays`类中的一个内部...
要将一个基本类型的数组转换为`ArrayList`,我们可以使用`Arrays.asList()`方法,然后通过`ArrayList`的构造函数创建一个新的实例。以下是一个例子: ```java int[] intArray = {1, 2, 3, 4, 5}; List<Integer> int...
List 可以使用 toArray() 方法转换为 Array,Array 可以使用 Arrays.asList() 方法转换为 List,由于 Arrays.asList() 方法返回的是固定的 List,可以使用 new ArrayList(Arrays.asList(array)) 方法来创建一个可扩...
Set<Integer> set1 = new HashSet(Arrays.asList(1, 2, 3, 4, 5)); Set<Integer> set2 = new HashSet(Arrays.asList(4, 5, 6, 7, 8)); set1.retainAll(set2); System.out.println(set1); // 输出 [4, 5] ``` 2. **...
可以使用toArray()方法将List转换为Array,也可以使用Arrays.asList()方法将Array转换为List。需要注意的是,Arrays.asList()方法返回的List是固定的,不可以添加或删除元素。如果需要添加或删除元素,可以使用new ...