我有这个清单:
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;
}
你能说出如何比较它们以使它按字符串排序吗? 阿根廷, 奥地利, 巴西等。
答案 0 :(得分:4)
有两种方法:
让Country
实施java.util.Comparable
界面,在Country
对象上定义自然排序,即让对象自己“知道”他们的排序。然后,您可以使用Collections.sort(List)
或仅从List
切换到SortedSet
TreeSet
实施(如果您不需要重复,则会Set
重复一次)
写一个java.util.Comparator
来定义一个强制排序并调用Collections.sort(List, Comparator)
或(再次丢失重复项)转到new TreeSet(Comparator)
。
实现这两个中的一个足以解决您的问题 - Comparable
和Comparator
都可以合并,但是:使用Comparator
将覆盖Comparable
定义的任何自然顺序1}}。
答案 1 :(得分:3)
您可以调用Collections.sort(),提供比较getCountry()的Comparator。
答案 2 :(得分:3)
使用内置的sort method 并确保在国家/地区
上实施comparable