按特定规则对对象列表进行排序?

我有这个清单:

List countryList = new ArrayList(); 

我想通过使用方法getCountry()按名称对国家进行排序。 怎么能实现这个?

更新:

 public class Country implements Comparable @Override public int compareTo(Object another) { // TODO Auto-generated method stub return 0; } 

你能说出如何比较它们以使它按字符串排序吗? 阿根廷,奥地利,巴西等

有两种方法:

  1. Country实现java.util.Comparable接口以定义Country对象的自然顺序 ,即使对象本身“知道”它们的顺序。 然后,您可以使用Collections.sort(List)或只是从List切换到像TreeSet这样的SortedSet实现(如果您不需要重复项,则Set Drop duplicate duplicates)

  2. 编写一个java.util.Comparator来定义强加的排序,并调用Collections.sort(List, Comparator)或(再次丢失重复项)去寻找new TreeSet(Comparator)

实现这两个中的一个足以解决您的问题 – 可以合并ComparableComparator :使用Comparator将覆盖Comparable定义的任何自然顺序。

您可以调用Collections.sort(),提供比较getCountry()的Comparator。

使用内置排序方法并确保在Country上实现可比较