14

整数と文字列を含む必要がある Arraylist を作成したい..それは可能ですか?

以下に示すように、2 つの Arraylist を作成しました。

ArrayList<Integer> intList=new ArrayList<Integer>();
    intList.add(1);
    intList.add(2);

ArrayList<String> strList=new ArrayList<String>();
    strList.add("India");
    strList.add("USA");
    strList.add("Canada");

intList と strList を新しい ArrayList に入れたい。

それをしてもいいですか??もしそうなら、どのように??

4

5 に答える 5

10

これは次のように行うことができますが、リスト コンテナーのジェネリックをあきらめる必要があります。

List<List> listOfMixedTypes = new ArrayList<List>();

ArrayList<String> listOfStrings = new ArrayList<String>();
ArrayList<Integer> listOfIntegers = new ArrayList<Integer>();

listOfMixedTypes.add(listOfStrings);
listOfMixedTypes.add(listOfIntegers);

ただし、より良い方法はMap、2 つのリストを追跡するために a を使用することです。これは、コンパイラが String を Integer リストに入れるなどのタイプの混合を防ぐことができなくなるためです。

Map<String, List> mapOfLists = new HashMap<String, List>();

mapOfLists.put("strings", listOfStrings);
mapOfLists.put("integers", listOfIntegers);

mapOfLists.get("strings").add("value");
mapOfLists.get("integers").add(new Integer(10));
于 2013-08-03T13:29:47.973 に答える
8

避けられる場合は、この Object 型のリストを避けてください。個々のリストに移動します。

そうでない場合は、次のタイプを選択する必要がありますObject

List<Object> list = new ArrayList<Object>();

すべてのタイプのオブジェクトを受け入れますが、取得中に注意する必要があります。

検索中のオブジェクトのチェック

for (Object obj: list) {
    if (obj instanceof String){
        // this  is string 
    } else if (obj instanceof Integer) {
       // this  is Integer 
    }
}
于 2013-08-03T13:21:27.970 に答える
2
List<Object> oList=new ArrayList<Object>();
于 2013-08-03T13:22:00.743 に答える