我有一个要求,当对对象列表进行排序时,我想要一个对象在顺序中第一个。这是对象列表,当使用某些通用比较器排序时,我希望始终将橙色水果对象放在列表中的第一个位置,我该如何使用比较器来做到这一点?
Fruit pineappale = new Fruit("Pineapple", "Pineapple description");
Fruit apple = new Fruit("Apple", "Apple description");
Fruit orange = new Fruit("Orange", "Orange description");
Fruit banana = new Fruit("Banana", "Banana description");
List<Fruit> fruits = new ArrayList<Fruit>();
fruits.add(pineappale);
fruits.add(apple);
fruits.add(orange);
fruits.add(banana);
Collections.sort(fruits, "some compator object");
public class Fruit {
private String fruitName;
private String fruitDesc;
public Fruit(String fruitName, String fruitDesc) {
super();
this.fruitName = fruitName;
this.fruitDesc = fruitDesc;
}
public String getFruitName() {
return fruitName;
}
public void setFruitName(String fruitName) {
this.fruitName = fruitName;
}
public String getFruitDesc() {
return fruitDesc;
}
public void setFruitDesc(String fruitDesc) {
this.fruitDesc = fruitDesc;
}
}
最佳答案
替换 Collections.sort(fruits, "some compator object");
与:
Collections.sort(fruits, new Comparator<Fruit>() {
@Override
public int compare(Fruit o1, Fruit o2) {
if (o1.getFruitName() != null && o1.getFruitName().equalsIgnoreCase("orange")){
return -1;
}
if (o2.getFruitName() != null && o2.getFruitName().equalsIgnoreCase("orange")){
return 1;
}
return o1.getFruitName().compareTo(o2.getFruitName());
}
});
关于java - 比较器将一个对象始终排在最上面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26210530/