Java使用特定名称在运行时创建对象的ArrayList

时间:2016-11-27 14:49:58

标签: java arraylist

我正在尝试在具有特定名称的方法中在运行时中构建对象的ArrayList:

public void createNewArray(String arrayName){

    ArrayList <StoreItem> arrayName = new ArrayList<StoreItem>();
}

我尝试的原因是因为,我不知道需要创建多少个ArrayLists。

我要做的是将字符串参数传递给函数(createNewArray),然后将此参数用作ArrayList名称。

我可以用Java做这件事吗?

3 个答案:

答案 0 :(得分:0)

使用HashMap:

    public static void main (String[] args) throws java.lang.Exception
    {
        HashMap<String, ArrayList<Integer>> map = new HashMap<String, ArrayList<Integer>>();        
    }

    public static void createNewArray(String arrayName){
        // Create your array list here
        ArrayList<Integer> list = new ArrayList<Integer>();
        map.put(arrayName, list);
    }

答案 1 :(得分:0)

  

我不知道需要创建多少个ArrayLists。

使用数组列表的数组列表怎么样?你知道那些事情存在。

myLists.add(new ArrayList<>());
myLists.get(0).add(new StoreItem());
// ...

你可以像普通的数组列表一样使用它:

HashMap<String, ArrayList<StoreItem>> myLists = new HashMap<>();

或者,如果要使用字符串访问其中一个列表,可以尝试使用数组列表的哈希映射:

myLists.put("foo", new ArrayList<>());
myLists.get("foo").add(new StoreItem());
// ...

你可以像普通的哈希映射一样使用它:

settings->tools->terminal

答案 2 :(得分:0)

为什么不使用HashMap ArrayList

public class MyArrays <T> {

     protected HashMap<String, ArrayList<T>> arrays = new HashMap<>();

     public void createNewArray(String arrayName) {
         arrays.put(arrayName, new ArrayList<T>());
     }

     public ArrayList<T> getArray(String arrayName) {
         return arrays.get(arrayName);
     }

}

你可以这样简单地使用它:

MyArrays<StoredItem> arr = new MyArrays<>();
arr.createNewArray("first");
...
ArrayList<StoredItem> first = arr.getArray("first");