java - 比较器将一个对象始终排在最上面

标签 java

我有一个要求,当对对象列表进行排序时,我想要一个对象在顺序中第一个。这是对象列表,当使用某些通用比较器排序时,我希望始终将橙色水果对象放在列表中的第一个位置,我该如何使用比较器来做到这一点?

    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/

相关文章:

java - 随机移动到二维数组中的新实例一次

java - 有没有办法加快许多循环的递归?

java - 何时/何地在 Google App Engine 中为搜索 API 创建索引 - Java

java - 创建一个按钮并以编程方式将其添加到 View 中

java - 反转线性链表

java - 将通用 ActionListener 添加到许多 JButtons 或 JComponents 或 JTextFields

java - 如何通过手机访问servlet

java - 为非 .class 文件创建 jar 文件

java - Android Studio使用Gradle添加.jar文件

java - EJBInvokerServlet/JMXInvokerServlet