0

我正在尝试对我的 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"

4

2 回答 2

4

您的代码有效。它必须在其他地方。
ideone上的代码

于 2010-09-14T06:10:16.683 回答
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);

当您填写并从集合中读取时,您可以在这里获取代码吗?

于 2010-09-14T06:11:18.933 回答