我有这个列表:
List<Country> countryList = new ArrayList<Country>();
我想使用 getCountry()
方法按国家名称对国家进行排序。
如何实现?
更新:
public class Country implements Comparable
@Override
public int compareTo(Object another) {
// TODO Auto-generated method stub
return 0;
}
你能告诉我如何比较它们以使其按字符串排序吗? 阿根廷, 奥地利, 巴西等
最佳答案
有两种方式:
让
Country
实现java.util.Comparable
接口(interface)以在您的Country
对象上定义一个自然顺序,即让对象本身“知道”它们的顺序。然后您可以使用Collections.sort(List)
或者只是从你的List
切换到SortedSet
实现,比如TreeSet
(如果你不需要重复,一个Set
删除重复项)写一个
java.util.Comparator
定义一个强制排序并调用Collections.sort(List, Comparator)
或(再次丢失重复项)使用new TreeSet(Comparator)
。
实现这两者之一就足以解决您的问题——Comparable
和 Comparator
都可以组合使用,不过:使用 Comparator
将覆盖 Comparable
定义的任何自然顺序。
关于java - 按特定规则对对象的 List<T> 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7776822/