对于任何可能有这样问题的人,你可能需要“Collections.sort”,而不是“Collection.sort”,这是我在下面犯的错误.
我定义了一个定义为的类
public class Store implements Serializable,Comparable<Store> { ... }
我在另一个类中有一个字段定义为:
ArrayList<Store> fStores = new ArrayList<Store>();
Collection.sort(fStores);
但是,我收到以下编译错误:
The method sort(ArrayList<Store>) is undefined for the type Collection
ArrayList实现List,并从文档中:
public static <T extends Comparable<? super T>> void sort(List<T> list)
那么,为什么我会收到错误?我也尝试创建自己的Comparator后代,并将其传递给sort方法,但没有运气.
我猜这里有一些关于“< T extends Comparable<?super T>>”的内容.我不理解… ?
解决方法
您需要查看基本上有两件事情:
Collections
This class consists exclusively of static methods that operate on or return collections. It contains polymorphic algorithms that operate on collections,“wrappers”,which return a new collection backed by a specified collection,and a few other odds and ends
所以基本上如果你必须排序或做任何这样的算法使用这个.
接下来是: – >
Collection
这是一个提供Java集合框架基础的接口.它不包括地图和排序地图.它表示一组称为其元素的对象,并具有具体实现的实现.当您想使用ArrayLists和Maps时,需要考虑这一点.
所以,在底线,你有一个静态算法来运行,它存在于集合中.所以,使用Collections.sort