我在这里阅读了其他问题并发现当编译器为Cannot find symbol
抛出Collections.sort(List<T> list)
时,问题通常是......
List<T>
List<T>
没有实施Comparable
java.util.Collection
遗忘我已经完成了所有这些事情,所以我怀疑我的实施有点不对劲。根据{{3}}堆栈溢出条目和this我的实现应该是合法的,所以我没有想法。如果排序传递List<Item>
?
可比较的实施
public abstract class Item implements Comparable<Item>
9 {
...//Fields and constructor omitted
25 @Override
26 public int compareTo(Item i)
27 {
28 // String title = this.title; DEBUG FLAG: delete maybe?
29 return this.title.compareTo(i.title); //Returns a negative value if title < i.title, implements alphabetical order by title
30 }
调用Library.java(假设一个正确构建的LinkedList TreeMap)
public Collection<Item> itemsForKeyword(String keyword)
25 {
26 List<Item> list;
27 if(keywordDbase.get(keyword) == null) //There is no mapping at specified keyword
28 {
29 list = null;
30 }
31 else if(keywordDbase.get(keyword).isEmpty()) //There is a mapping but it is empty
32 {
33 list = null;
34 }
35 else //There is a list that has at least one item in it
36 {
37 list = keywordDbase.get(keyword); //stores a reference to the LinkedList in list
38 }
39
40 Collections.sort(list); //DEBUG FLAG: Calling sort may be unnecessary
41
42 return list; here
43 }
错误
library/Library.java:40: error: cannot find symbol
Collections.sort(list);
^
答案 0 :(得分:1)
java.util.Collection
与java.util.Collections
不同。将以下import语句添加到您的代码中:
import java.util.Collections;`
集合层次结构中的根接口。集合表示一组对象,称为其元素。有些集合允许重复元素而其他集合则不允许。有些是订购的,有些是无序的。 JDK不提供此接口的任何直接实现:它提供了更具体的子接口(如Set和List)的实现。此接口通常用于传递集合并在需要最大通用性的情况下对其进行操作。
另一方面,有一个班级java.util.Collections
仅包含对集合进行操作或返回集合的静态方法。它包含对集合进行操作的多态算法,“包装器”,它返回由指定集合支持的新集合,以及其他一些可能的结果。
它们不同但涉及同一主题。你刚刚犯了一个不幸的错字。
答案 1 :(得分:0)
import
的{{1}}语句丢失..
添加Collections