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

あなたのコードは機能します。それは別の場所にあるに違いありません。
イデオンのコード

于 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 に答える