java - 作为 ArrayList 的子级排序

标签 java sorting inheritance arraylist collections

我的教授要求我对 SoftDrinkList 类进行排序,该类扩展为 SoftDrinks 的 ArrayList,按升序和降序排列,但我似乎无法让它工作

private void sort(boolean isAscending){
    if (isAscending){
        Collections.sort(super(),Collections.reverseOrder((a,b) -> {
        return a.getPrice().compareTo(b.getPrice());
    }));
    }
}

我对 Java 很陌生,所以我不太了解它的内部工作原理,任何帮助将不胜感激。 PS:有没有办法从当前的ArrayList创建一个临时排序的ArrayList?因为我只需要按排序顺序打印,所以我真的不想对实际数组进行排序。谢谢

最佳答案

您可以修改函数以返回原始列表的排序副本。假设您使用名为 SoftDrink 的类,您可以执行以下操作:

 private ArrayList<SoftDrink> sort(boolean isAscending){
    ArrayList<SoftDrink> copy = new ArrayList<>(originalList); // creates a copy of your original list
    Comparator<SoftDrink> ascendingComparator = new Comparator<SoftDrink>() {
        @Override
        public int compare(SoftDrink a, SoftDrink b) {
            return a.getPrice() - b.getPrice();
        }
    };
    if (isAscending) {
        copy.sort(ascendingComparator);
    } else {
        copy.sort(Collections.reverseOrder(ascendingComparator));
    }

    return copy;
}

关于java - 作为 ArrayList 的子级排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59340861/

相关文章:

java - 下采样 PCM 音频 44100 到 8000

arrays - 对 MongoDB 集合中的对象数组进行排序

java - collection.sort() 函数的效率如何?

java - 如何实现类列表中不常见的方法/接口(interface)?

java - JsonObject 添加属性 - map

java - JPA 中的哪个内存区域分配给托管实体对象?

java - BlueJ 开关盒

c++ - partial_sort 和智能指针

java - 如何使用泛型在 Java 中创建通用方法?

xml - Odoo - 创建演示时从 xml 访问字段