電子書籍の厳選無料作品が豊富!

いつもお世話になっています。
Collectionについてなのですが、
Collection→配列は、可能ですが、
Collection→List,Mapはできないのでしょうか?

ためしに、CollectionにList,Mapそれぞれを格納してみると
Object[]で、List,Mapそれぞれの値を取得することはできるようなのですが。
以下が実行時のソースです。

//MapからCollection
Map map = new HashMap();
map.put("tet","ttt");
map.put("a", "arigato~");
//MapをCollectionに格納する
Collection co1 = java.util.Arrays.asList(map);
//Object型配列で取得する
Object[] ob1 = co1.toArray();
System.out.println(ob1.length + "/" + ob1[0]);

//ListからCollection
List list = new ArrayList();
list.add("test");
list.add("arigato~");
//ListをCollectionに格納する
Collection co2 = java.util.Arrays.asList(list);
//Object[]で取得する
Object[] ob2 = co2.toArray();
System.out.println(ob2.length + "/ " + ob2[0]);

表示結果:
1/{a=arigato~, tet=ttt}
1/ {a=arigato~, tet=ttt}

宜しくお願いします。

A 回答 (1件)

こんにちは、



今ひとつ、意味がつかめないのですが。
サンプルコードを書いてみました。

Map<String,String> m = new HashMap<String,String>();
m.put("a", "aaa1");
m.put("b", "bbb1");
Collection <String> c =m.values();
String [] md = c.toArray(new String[0]);
System.out.println(md[0]);
System.out.println(md[1]);

System.out.println("*************");

List <String> list = new ArrayList<String>();
list.add("listaaa1");
list.add("listbbb1");
Collection<String> lc = list;
String [] ld = lc.toArray(new String[0]);
System.out.println(ld[0]);
System.out.println(ld[1]);

System.out.println("*************");

List <String> ls1 = Arrays.asList(ld);
System.out.println(ls1.get(0));
System.out.println(ls1.get(1));

実行結果

debug:
bbb1
aaa1
*************
listaaa1
listbbb1
*************
listaaa1
listbbb1
構築成功 (合計時間: 32 秒)


外していたら、ごめん
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
提示して頂いた通りです。

ありがとうございました。

お礼日時:2009/09/09 21:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!