java - 如何在 Java 中使用 Collections.sort()?

标签 java sorting spring-mvc collections

我得到了一个对象 Recipe实现 Comparable<Recipe> :

public int compareTo(Recipe otherRecipe) {
    return this.inputRecipeName.compareTo(otherRecipe.inputRecipeName);
}

我已经这样做了,所以我可以对 List 进行排序采用以下方法按字母顺序排列:

public static Collection<Recipe> getRecipes(){
    List<Recipe> recipes = new ArrayList<Recipe>(RECIPE_MAP.values());
    Collections.sort(recipes);
    return recipes;
}

但现在,换一种方式,我们称之为 getRecipesSort() ,我想对相同的列表进行排序,但以数字方式比较包含其 ID 的变量。更糟糕的是,ID 字段的类型为 String。 .

如何使用 Collections.sort() 在 Java 中执行排序?

最佳答案

使用此方法Collections.sort(List,Comparator) .实现 Comparator并将其传递给 Collections.sort().

class RecipeCompare implements Comparator<Recipe> {

    @Override
    public int compare(Recipe o1, Recipe o2) {
        // write comparison logic here like below , it's just a sample
        return o1.getID().compareTo(o2.getID());
    }
}

然后使用Comparator作为

Collections.sort(recipes,new RecipeCompare());

关于java - 如何在 Java 中使用 Collections.sort()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16425127/

相关文章:

c - 对结构体上的字符串进行选择排序

java - 通过构造函数创建 bean 时出错 Bean 实例化失败

java - 通过单个连接将数千个客户端连接到 Jabber 服务器

mysql - 根据 StackOverflow 等条件获取问题的最佳方式

Java Swing 制作具有自定义尺寸的盒子

javascript - 如何翻转 div 标签中项目的排序顺序?

java - 如何使用 spring boot 和嵌入式 tomcat 禁用 TLSv1.0?

java - Spring MVC Controller 的误解

Java、RPC/编码的 Axis 1.4 客户端无法发送空参数

java - Apache Spark 驱动内存