java – 为什么我不能在我的ArrayList上调用Collections.sort()?

前端之家收集整理的这篇文章主要介绍了java – 为什么我不能在我的ArrayList上调用Collections.sort()?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对于任何可能有这样问题的人,你可能需要“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

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

原文链接:https://www.f2er.com/java/126370.html

猜你在找的Java相关文章