解決済みの質問
いつもお世話になっています。
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
こんにちは、
今ひとつ、意味がつかめないのですが。
サンプルコードを書いてみました。
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
0人が「このQ&Aが役に立った」と投票しています
OKWaveのオススメ
おすすめリンク