Java 使用带有排序方法的LinkedList
我目前正在尝试使用LinkedList打印从出现次数最多到出现次数最少的密钥列表。我试图在条目的getValue方法上使用sort方法,但它不起作用。知道我做错了什么吗。下面是我的代码片段Java 使用带有排序方法的LinkedList,java,sorting,linked-list,treemap,Java,Sorting,Linked List,Treemap,我目前正在尝试使用LinkedList打印从出现次数最多到出现次数最少的密钥列表。我试图在条目的getValue方法上使用sort方法,但它不起作用。知道我做错了什么吗。下面是我的代码片段 // Beginning tree map Map<String, Integer> map1 = new TreeMap<>(); String[] words1 = text.split("[ \n\t\r.,;:!?(){ ]");
// Beginning tree map
Map<String, Integer> map1 = new TreeMap<>();
String[] words1 = text.split("[ \n\t\r.,;:!?(){ ]");
for (int i = 0; i < words1.length; i++)
{
String key = words1[i].toLowerCase();
if (key.length() > 0)
{
if (!map1.containsKey(key))
{
map1.put(key, 1);
}
else
{
int value = map1.get(key);
value++;
map1.put(key, value);
}
}
}
Set<Map.Entry<String, Integer>> entrySet1 = map1.entrySet();
// Get key and value from each entry
System.out.println("Treemap: " + map1);
for (Map.Entry<String, Integer> entry: entrySet1)
System.out.println(entry.getValue() + "\t" + entry.getKey());
System.out.println("");
// Beginning for LinkedList
LinkedList<Entry<String, Integer>> linkedList = new LinkedList<>(entrySet1);
System.out.println("linkedList:");
System.out.println(linkedList);
System.out.println(linkedList.sort(entrySet1.getKey());
因此,我的最终问题是,如何将getValue方法传递给LinkedList,以便按排序顺序打印它们。您可以了解LinkedList的内置排序是如何工作的。注意:最快的方法是将元素复制到数组中,快速排序并在完成后将元素复制回来。试试看,这会对您有所帮助我不熟悉Java 8,所以可能我遗漏了一些东西,但在我看来,代码不应该编译。它正在调用
entrySet1
上的getKey()
,这是一个集合
,但是集合
。另外,最后两条println()
语句中的一条未反映在输出中。
Treemap: {a=2, class=1, fun=1, good=3, have=3, morning=1, visit=1}
2 a
1 class
1 fun
3 good
3 have
1 morning
1 visit
linkedList:
[a=2, class=1, fun=1, good=3, have=3, morning=1, visit=1]