排序ArrayList不能正常工作

时间:2010-09-14 04:48:50

标签: java sorting collections arraylist comparator

我正在尝试对ArrayList进行排序,但是当我检查我所谓的排序数组中的第一项时,它是不正确的。我不知道为什么?我错过了什么吗?

以下是我的比较器:

package org.stocktwits.helper;

import java.util.Comparator;

import org.stocktwits.model.Quote;

public class NameComparator implements Comparator<Quote>
{

    public int compare(Quote o1, Quote o2) {
        return o1.getName().compareToIgnoreCase( o2.getName());
    }
}

以下是我执行实际排序的方式:

Collections.sort(quotes, new NameComparator());

这是我的测试数据

quotes = ["Yahoo", "Microsoft", "Apple"]

排序后我希望它是:

quotes = ["Apple", "Microsoft", "Yahoo"]`

但是当我在排序后拿出第一个项目时,我得到:"Yahoo"

2 个答案:

答案 0 :(得分:4)

您的代码有效。它必须在别的地方。
Code on ideone

答案 1 :(得分:1)

类似版本对我很有用:

        class NameComparator implements Comparator<String>
    {

        public int compare(String o1, String o2) {
            return o1.compareToIgnoreCase( o2 );
        }
    }

    ArrayList<String> s = new ArrayList<String>(3);
    s.add("Yahoo");
    s.add("Microsoft");
    s.add("Apple");

    Collections.sort(s, new NameComparator());
    System.out.println(s);

当你填写并从集合中读取时,你可以带这些代码吗?