protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView t;
List<Integer> listA = Arrays.asList(0,1,2,3);
List<Integer> listB = Arrays.asList(0,2,4,6,8);
List<Integer>[] listC = (List<Integer>[])new List[2];
t = (TextView)findViewById(R.id.textView1);
listC[0] = listA;
listC[1] = listB;
t.setText("Result: "+ listC[0].get(1)); //Result: 1
listC[0].remove(0); //i get an error in this line
}
我很困惑,为什么我没有收到错误:listC [0] .get(1) 但是出了点问题:listC [0] .remove(0); 我的代码有问题吗?有更有效的方法吗?请帮我!非常感谢你!
答案 0 :(得分:3)
由于UnSupportedOperationException
正在重新调整不可修改的列表,因此可能会得到Arrays.asList()
。所以改变
List<Integer> listA = Arrays.asList(0,1,2,3);
List<Integer> listB = Arrays.asList(0,2,4,6,8);
到
List<Integer> listA = new ArrayList<Integer>(Arrays.asList(0, 1, 2, 3));
List<Integer> listB = new ArrayList<Integer>(Arrays.asList(0, 2, 4, 6, 8));
答案 1 :(得分:0)
来自doc for Arrays.asList:
列出java.util.Arrays.asList(Integer ... array)
public static List asList(T ... array) 在API级别1中添加 返回指定数组中对象的List。无法修改List的大小,即不支持添加和删除,但可以设置元素。设置元素会修改基础数组。
参数 数组的数组。
返回 指定数组的元素列表。
您无法更改列表的大小,最好更改
List<Integer> listA = Arrays.asList(0, 1, 2, 3);
List<Integer> listB = Arrays.asList(0, 2, 4, 6, 8);
要
ArrayList<Integer> listA = new ArrayList<Integer>(Arrays.asList(0, 1, 2, 3));
ArrayList<Integer> listB = new ArrayList<Integer>(Arrays.asList(0, 2, 4, 6, 8));
答案 2 :(得分:0)
我建议使用而不是数组
List<List<Integer>> listC = new ArrayList<List<Integer>>(2);
这是一种更清洁的方式。
您可以执行以下所有操作。
public static void main(String args[]) throws Exception {
List<Integer> listA = Arrays.asList(0, 1, 2, 3);
List<Integer> listB = Arrays.asList(0, 2, 4, 6, 8);
List<List<Integer>> listC = new ArrayList<List<Integer>>(2);
listC.add(listA);
listC.add(listB);
System.out.println("Complete List : " + listC);
System.out.println("First Element :" + listC.get(0));
listC.remove(1);// removed 2nd element
System.out.println("List After Removal : " + listC);
}
输出:
Complete List : [[0, 1, 2, 3], [0, 2, 4, 6, 8]]
First Element :[0, 1, 2, 3]
List After Removal : [[0, 1, 2, 3]]