みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Collectionからの型変換について

いつもお世話になっています。
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}

宜しくお願いします。

投稿日時 - 2009-09-09 18:55:58

QNo.5276216

暇なときに回答ください

質問者が選んだベストアンサー

こんにちは、

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

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 秒)


外していたら、ごめん

投稿日時 - 2009-09-09 20:52:47

お礼

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

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

投稿日時 - 2009-09-09 21:33:00

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問