[英]HashMap is already sorted by key?
我認為HashMap是無序的,當迭代鍵時,你不知道命令是什么? 在此示例中,看起來地圖已按鍵編號排序:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Test {
public static void main(String[] args) {
String[] words = {"Car", "Cat" ,"Hello", "World", "Hi", "Bye", "Dog", "Be"};
Map<Integer, ArrayList<String>> map = new HashMap<Integer, ArrayList<String>>();
for (String word: words) {
Integer len = word.length();
List<String> l = map.get(len);
if (l == null) {
l = new ArrayList<String>();
l.add(word);
map.put(len, (ArrayList<String>) l);
}
else {
if (! l.contains(word))
l.add(word);
}
}
System.out.println(map);
}
}
輸出:
{2=[Hi, Be], 3=[Car, Cat, Bye, Dog], 5=[Hello, World]}
對於小的hashCodes,HashMap變成一個數組(因為這是在下面使用的)沒有要求它這樣做,但它恰好是最簡單的實現。
簡而言之,如果向HashSet或HashMap添加0到10,您將按順序獲取它們,因為容量足夠大,可以按順序布局這些值。
Treemap是一個有序的映射,其中包含按排序順序排列的鍵,而HashMap無法保證您排序的map.So,總是在需要排序鍵時選擇Treemap
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.