private java.util.HashMap<Character, Boolean> letters = new java.util.HashMap<Character, Boolean>();
for (int i = 0; i < 26; i++) {
letters.put(letter, false);
System.out.println(letter);
letter++;
}
for (Map.Entry<Character, Boolean> v : letters.entrySet()) {
System.out.println(v.getKey());
}
当打印这封信时,我可以得到一个...但是在存储在散列图中后,它会返回给我,而不是依次为什么?
答案 0 :(得分:3)
HashMap
未订购。如果要检索广告订单中的条目,请改用LinkedHashMap
。
答案 1 :(得分:2)
java.util.HashMap
不是有序集合。
答案 2 :(得分:1)
HashMap既没有排序也没有排序,您可以使用TreeMap。它按自然顺序或自定义比较规则排序。
一个例子:
public class Main {
public static void main(String[] args) {
HashMap<String,Double> map = new HashMap<String,Double>();
ValueComparator bvc = new ValueComparator(map);
TreeMap<String,Double> sorted_map = new TreeMap(bvc);
map.put("A",99.5);
map.put("B",67.4);
map.put("C",67.5);
map.put("D",67.3);
System.out.println("unsorted map");
for (String key : map.keySet()) {
System.out.println("key/value: " + key + "/"+map.get(key));
}
sorted_map.putAll(map);
System.out.println("results");
for (String key : sorted_map.keySet()) {
System.out.println("key/value: " + key + "/"+sorted_map.get(key));
}
}
}
class ValueComparator implements Comparator {
Map base;
public ValueComparator(Map base) {
this.base = base;
}
public int compare(Object a, Object b) {
if((Double)base.get(a) < (Double)base.get(b)) {
return 1;
} else if((Double)base.get(a) == (Double)base.get(b)) {
return 0;
} else {
return -1;
}
}
}
答案 3 :(得分:-1)
Hashmap没有订购..我在使用TreeMap后才知道这一点。但是在处理日期时这对我很有用