パンくず
書籍 パーフェクトJava
マップのループ処理
概要
Javaのマップのループ処理について
その他
ソート済みMapを利用したい場合はTreeMapを使用。
Map<String, String> treeMap = new TreeMap<String, String>();
リストの逆方向のループを行いたい場合はListIteratorを使用
サンプルコード
package perfect.map; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.ListIterator; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; public class MapLoopSample { public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("ほげ", "hoge"); map.put("はげ", "hage"); map.put("ひげ", "hige"); map.put("あ", "a"); System.out.print("keySet:|"); for (String key : map.keySet()) { System.out.print(key + "|"); } System.out.println(""); System.out.print("values:|"); for (String value : map.values()) { System.out.print(value + "|"); } System.out.println(""); System.out.print("entrySet:|"); for (Entry<String, String> entry : map.entrySet()) { System.out.print(entry + "|"); } System.out.println(""); System.out.println("------------------------------"); System.out.println("TreeMapによるソート済みマップ"); // ソートされたMapを使用 Map<String, String> treeMap = new TreeMap<String, String>(map); System.out.print("keySet:|"); for (String key : treeMap.keySet()) { System.out.print(key + "|"); } System.out.println(""); System.out.println("------------------------------"); System.out.println("ListIteratorによる逆走査"); List<String> list = Arrays.asList("はげ","ほげ","ひげ"); System.out.println(list); ListIterator<String> listIterator = list.listIterator(list.size()); System.out.print("ListIterator#previous:|"); while(listIterator.hasPrevious()) { String value = listIterator.previous(); System.out.print(value + "|"); } System.out.println(""); } }
出力
keySet:|はげ|あ|ひげ|ほげ| values:|hage|a|hige|hoge| entrySet:|はげ=hage|あ=a|ひげ=hige|ほげ=hoge| ------------------------------ TreeMapによるソート済みマップ keySet:|あ|はげ|ひげ|ほげ| ------------------------------ ListIteratorによる逆走査 [はげ, ほげ, ひげ] ListIterator#previous:|ひげ|ほげ|はげ|