JavaでiteratorやEntrySetを使ってMapをループするいくつかの方法。それも、できるだけシンプルにね。
Mapの内容をループする方法がいくつかあるので、まとめて紹介したいと思います。
紹介するのは以下の処理の方法です。
ジェネリクス使ってないMapをIteratorでループする
public void loopMap(Map map) { //Iteretorでループしてみる Iterator ite = map.entrySet().iterator(); System.out.println("-----START Iterator-----"); while (ite.hasNext()) { Map.Entry pairs = (Map.Entry)ite.next(); System.out.println("key:" + pairs.getKey() + "\tvalue:" + pairs.getValue()); ite.remove(); //ConcurrentModificationExceptionを避けるため } System.out.println("-----END Iterator-----"); }
これを使ってみます。
//Sample1 Map map = new HashMap(); map.put("1", "yuko"); map.put("2", "mika"); map.put("3", "asami"); Samples sample = new Samples(); sample.loopMap(map);
結果は以下のようになります。
-----START Iterator----- key:3 value:asami key:2 value:mika key:1 value:yuko -----END Iterator-----
Mapのkeyだけ取り出す
public void loopMap2(Map<String,Object> map) { System.out.println("-----START loopMap(key loop)-----"); for (String key : map.keySet()) { System.out.println(key); } System.out.println("-----END loopMap(key loop)-----"); }
こいつを使ってみます。
//Sample2 Map<String, Object> map2 = new HashMap(); map2.put("key1", "boo"); map2.put("key2", "fuga"); map2.put("key3", "hoge"); sample.loopMap2(map2);
結果は以下のようになります。
-----START loopMap(key loop)----- key3 key2 key1 -----END loopMap(key loop)-----
Mapのvalueだけ取り出す
public void loopMap3(Map<String,Object> map) { System.out.println("-----START loopMap(value loop)-----"); for (Object value : map.values()) { System.out.println(value); } System.out.println("-----END loopMap(value loop)-----"); }
こいつを使ってみます。
//Sample2 Map<String, Object> map2 = new HashMap(); map2.put("key1", "boo"); map2.put("key2", "fuga"); map2.put("key3", "hoge"); sample.loopMap3(map2);
結果は以下のようになります。
-----START loopMap(value loop)----- hoge fuga boo -----END loopMap(value loop)-----
Mapのkeyとvalueを取り出す
public void loopMap4(Map<String,Object> map) { System.out.println("-----START loopMap(key and value)-----"); for (Map.Entry<String, Object> entry : map.entrySet()) { String key = entry.getKey(); Object value = entry.getValue(); System.out.println("key:" + key + "\tvalue:" + value); } System.out.println("-----END loopMap(key and value)-----"); }
こいつを使ってみます。
Map<String, Object> map2 = new HashMap(); map2.put("key1", "boo"); map2.put("key2", "fuga"); map2.put("key3", "hoge"); sample.loopMap4(map2);
結果は以下のようになります。
-----START loopMap(key and value)----- key:key3 value:hoge key:key2 value:fuga key:key1 value:boo -----END loopMap(key and value)-----
- 作者: 井上誠一郎,永井雅人
- 出版社/メーカー: 技術評論社
- 発売日: 2014/11/01
- メディア: 大型本
- この商品を含むブログ (1件) を見る