我应该如何在动态创建的arraylists中插入值?

时间:2013-03-12 08:51:46

标签: java

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中插入值?

4 个答案:

答案 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

进行retVal
for(ArrayList<Object> list : retval){
   list.add(object);
}

或者您可以使用简单的操作符

来完成
for(int i = 0; i < retVal.size(); i++){
   retVal.get(i).add(object);
}