1

我有一个包含名字、姓氏、地址、电子邮件和电话号码的数组列表,以及一个包含多个“条目”的数组列表,每个条目都包含所有 5 个索引。获取和设置所有 5 个值的方法都在 Entry 类中,而添加、修改、删除和排序条目在类 Contact List 中完成。

我正在尝试按姓氏对条目进行排序并在 ContactList 类中打印出来。我有:

public void listEntries()
    {
        Collections.sort(entries);

        for (int i = 0; i < entries.size(); i++)
        {

            entries.get(i).print();
        }
    }

我知道我遗漏了一些东西来定义排序依据,但我什至不确定我是否应该使用 Collections.sort。有什么建议么?

4

2 回答 2

1

您具有给定条目的类(我认为该条目就是那个类)必须实现Comparable接口。然后您可以对您的收藏使用排序。顺序是通过自然顺序给出的(在 Comparable 接口的实现方法中由您自己决定)。

于 2012-12-09T21:33:18.223 回答
1

你错过了一个比较器作为一个额外的参数sort- 例如

Collections.sort(entries, new Comparator<List<String>>() {
    @Override
    public int compare(List<String> o1, List<String> o2) {
        return o1.get(1).compareTo(o1.get(1));
    }
});
于 2012-12-09T22:33:41.247 回答