簡體   English   中英

如何將單詞存儲為 TreeMap 中的鍵?

[英]How Do I Store Words as Keys in a TreeMap?

使用 TreeMap,我將如何使用 map 鍵的比較器,這些鍵是對應鏈接列表的單詞。

TreeMap<String, LinkedList<String>()> () words = new TreeMap(<Comparator> );

是否有我可以使用的特定比較器,或者我是否必須實現一種方法來按字母順序對我添加到 TreeMap 的單詞進行排序?

不需要Comparator

作為NavigableMapTreeMap承諾保持其鍵排序。

並且地圖鍵的 class String class 已經實現了Comparable 所以字符串對象知道如何排序。 使用Comparable的鍵,您無需指定Comparator

此外,通常最好使用接口或超類以更通用的方式聲明您的集合。 這為您在不破壞其他代碼的情況下稍后更改具體類留下了空間。 所以NavigableMap< String, List< String > > map而不是TreeMap< String, LinkedList< String > > map

例如,在下面的代碼中,我們可以自由地使用List.of來生成一些未知的具體 class 的List ,而不是僅限於在您的代碼中看到的LinkedList

NavigableMap< String , List< String > > map = new TreeMap<>() ;

示例用法。

map.put( "animals" , List.of( "dog" , "cat" , "bird" ) ) ;
map.put( "people" , List.of( "Alice" , "Bob" , "Carol" ) ) ;
map.put( "cars" , List.of( "Honda" , "Mazda" ) ) ;

請參閱在 IdeOne.com 上實時運行的代碼

map.toString() ➡ {動物=[狗,貓,鳥],汽車=[本田,馬自達],人=[愛麗絲,鮑勃,卡羅爾]}

請注意"cars"條目是如何從第 3 個添加到第 2 個 position 排序的,在“動物”和“人”之間按字母順序排列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM