2016-11-27 13 views
0

と、実行時にオブジェクトのArrayListのを作成します。Javaは、私は特定の名前のメソッド内でランタイムにオブジェクトのArrayListのを構築しようとしている特定の名前

public void createNewArray(String arrayName){ 

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

私がしようとしている理由であるため、 、私は作成する必要がArrayListの数を知りません。

私がしようとしているのは、文字列パラメータを関数(createNewArray)に渡し、このパラメータをArrayList名として使用することです。

Javaでこのようなことを実行できますか?

+1

番号をあなたが持っているでしょうどのように多くのリストがわからない場合は、リストのリスト(または任意の他のより適切なコレクションを作成しますあなたのユースケースに応じて) –

+1

おそらく 'List'の代わりに' Map'を探しています。 [HashMap ](https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html)を参照してください。 'HashMap >'を使うと、リストを「名前で」格納することができます。 – Nicklas

答えて

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

私は、私が作成する必要がありますどのように多くのArrayListを知りません。

アレイリストのアレイリストを使用するとどうなりますか?あなたが知っているそれらの事があります。

ArrayList<ArrayList<StoreItem>> myLists = new ArrayList<>(); 

そして、あなたは普通の配列リストのようにそれを使用することができます:あなたは、文字列を使用してリストの1にアクセスしたい場合は、

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()); 
// ... 
0

HashMapArrayListを使用しない理由は?

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"); 
関連する問題