我有以下图书清单
public static ArrayList<List<String>> booksList = new ArrayList<List<String>>();
并如下图所示填充
booksList.add(Arrays.asList("Coders at Work", null));
booksList.add(Arrays.asList("Code Complete",null));
booksList.add(Arrays.asList("The Mythical Man Month",null));
booksList.add(Arrays.asList("Don't Make Me Think",null));
booksList.add(Arrays.asList("The Pragmatic Programmer",null));
我想将项目添加到
Arraylist
的特定行的列表中booksList.get(0).add("BUYED");
booksList.get(0).add(0,"BUYED");
但这是行不通的。如何添加更多项目?还是有更好的方法来处理这种情况?
最佳答案
您不能添加或删除由List
创建的Arrays.asList()
的元素。
它的javadoc确实指出:
返回由指定数组支持的固定大小的列表。
为了能够在创建列表之后添加新元素,可以将固定大小的List包裹在新的ArrayList
中。
例如:
BooksList.add(Arrays.asList("Coders at Work", null));
可以写成:
BooksList.add(new ArrayList<>(Arrays.asList("Coders at Work", null)));