Makoto answered我发布的问题。这是我对创建动态arraylists问题的回答。
public List<ArrayList<Object>> dynamicSizedLists(final int size) {
List<ArrayList<Object>> retVal = new LinkedList<ArrayList<Object>>();
final int MAX_SIZE = 1000;
int iterations = size / MAX_SIZE;
for(; iterations > 0; iterations--) {
retVal.add(new ArrayList<Object>(MAX_SIZE));
}
retVal.add(new ArrayList<Object>(size % MAX_SIZE));
return retVal;
}
我应该如何在创建的arraylists中插入值?
答案 0 :(得分:0)
从列表中获取列表,并添加一个元素:
List<ArrayList<Object>> lists = dynamicSizedLists(3);
lists.get(0).add("Hello World");
lists.get(1).add("Foo");
lists.get(1).add("Bar");
ArrayList<Object> list = lists.get(2);
list.add(new Integer(2));
System.out.println(lists);
顺便说一下,List<List<Object>>
的实施应该是<T> List<List<T>>
(或者dynamicSizedLists
)。使用集合类而不是接口是不好的风格。
答案 1 :(得分:0)
这样做:
for(; iterations > 0; iterations--)
{
//create the array list first,
ArrayList<Object> obj = new ArrayList<Object>(MAX_SIZE)
//populate the contents of the above array list
obj.add(WhatEverThatIsToBeAdded);
//finally add the above arraylist to your retVal list
retVal.add(obj);
}
答案 2 :(得分:0)
据我所知,您可以通过get()从Array列表列表中获取单个arraylist,然后您可以添加所需的值。
答案 3 :(得分:0)
使用foreach
进行retValfor(ArrayList<Object> list : retval){
list.add(object);
}
或者您可以使用简单的操作符
来完成for(int i = 0; i < retVal.size(); i++){
retVal.get(i).add(object);
}