我正在尝试对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"
答案 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);
当你填写并从集合中读取时,你可以带这些代码吗?