Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将单词作为键存储在树状图中?_Java_Sorting_Dictionary - Fatal编程技术网

Java 如何将单词作为键存储在树状图中?

Java 如何将单词作为键存储在树状图中?,java,sorting,dictionary,Java,Sorting,Dictionary,使用树映射,我将如何使用比较器将作为单词的键映射到相应的链表 TreeMap<String, LinkedList<String>()> () words = new TreeMap(<Comparator> ); TreeMap()words=newtreemap(); 我是否可以使用一个特定的比较器,或者我是否必须实现一种方法,让它按照字母顺序对我添加到树形图中的单词进行排序?无需使用比较器 作为一个整体,a承诺保持其密钥的有序性 类,地图键的类,已经

使用树映射,我将如何使用比较器将作为单词的键映射到相应的链表

TreeMap<String, LinkedList<String>()> () words = new TreeMap(<Comparator> );
TreeMap()words=newtreemap();
我是否可以使用一个特定的比较器,或者我是否必须实现一种方法,让它按照字母顺序对我添加到树形图中的单词进行排序?

无需使用比较器

作为一个整体,a承诺保持其密钥的有序性

类,地图键的类,已经实现了。因此字符串对象知道如何排序。对于
可比较的键
,无需指定
比较器

此外,通常最好使用接口或超类以更通用的方式声明集合。这为您以后在不破坏其他代码的情况下更改具体类留下了空间。因此
NavigableMap>map
而不是
TreeMap>map

例如,在下面的代码中,我们可以自由地使用
List.of
生成某个未知具体类的
List
,而不是像代码中所示仅限于
LinkedList

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

map.toString()➡ {动物=[狗,猫,鸟],汽车=[本田,马自达],人=[爱丽丝,鲍勃,卡罗尔]}


注意
“cars”
条目是如何从第3位添加到第2位的,按字母顺序排列在“动物”和“人”之间。

我不确定我是否理解;默认情况下,
TreeMap
使用文档中指示的自然顺序,即,
compareTo
。字符串已经实现了
compareTo
。尝试使用它TreeMap words=newtreemap(Comparator.naturalOrder());
map.put( "animals" , List.of( "dog" , "cat" , "bird" ) ) ;
map.put( "people" , List.of( "Alice" , "Bob" , "Carol" ) ) ;
map.put( "cars" , List.of( "Honda" , "Mazda" ) ) ;