Looping over HashMap based on order values were added
本问题已经有最佳答案,请猛点这里访问。
我需要循环创建一个hashmap来创建一个新的hashmap并为其添加一个整数。
现在我正在使用迭代器,但似乎它没有按特定顺序迭代
所以,如果我把这些数据放在我的地图中
1 2 3 | map.put(one, alpha) map.put(two, delta) map.put(three, gamma) |
然后我根据订单迭代它
我的新hashmap将具有:
1 2 3 | key: one value: 1 key: two value: 2 key: three value: 3 |
现在,当我尝试运行它时,它出现如下:
1 2 3 | key: two value: 1 key: one value: 2 key: three value: 3 |
如果您希望按照它们添加到Map的顺序迭代键,请使用LinkedHashMap。
如果您希望按字母顺序迭代键,请使用TreeMap。
如果您希望以您自己定义的任意顺序迭代键,请使用带有提供的Comparator的TreeMap。
您需要根据需要按键或值对它们进行排序。 下面的示例将按键对它们进行排序。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; public class Main { public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("1","alpha"); map.put("3","gamma"); map.put("2","delta"); List<String> list = new ArrayList(map.keySet()); Collections.sort(list); for (String s:list){ System.out.println(map.get(s)); } } } |