我得到了一个对象 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/