我有以下图书清单

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)));

09-12 12:21