[英]How Do I Store Words as Keys in a TreeMap?
使用 TreeMap,我將如何使用 map 鍵的比較器,這些鍵是對應鏈接列表的單詞。
TreeMap<String, LinkedList<String>()> () words = new TreeMap(<Comparator> );
是否有我可以使用的特定比較器,或者我是否必須實現一種方法來按字母順序對我添加到 TreeMap 的單詞進行排序?
不需要Comparator
。
作為NavigableMap
, TreeMap
承諾保持其鍵排序。
並且地圖鍵的 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" ) ) ;
map.toString() ➡ {動物=[狗,貓,鳥],汽車=[本田,馬自達],人=[愛麗絲,鮑勃,卡羅爾]}
請注意"cars"
條目是如何從第 3 個添加到第 2 個 position 排序的,在“動物”和“人”之間按字母順序排列。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.