我想使用接口迭代器以指定顺序迭代列表。
在这种情况下,我想以降序product.prize顺序迭代列表(listofproducts)。

public class Invoice {

    private static int static_id;

    private int id;
    private String date;
    private List<Product> listofproduct = new ArrayList<Product>();
    private boolean open;
}


public class Product {

    private static int count = 0;

    private int code;
    private String name;
    private String description;
    private double price;
}


我有一种公开的方法来获取价格。
我该如何解决?

最佳答案

如果数据量不太大,则可以在不考虑性能的情况下执行以下操作:

List<Product> sortList = new ArrayList<>(origList);
Collections.sort(sortList, new Comparator<Product>() {
    @Override
    public int compare(Product arg0, Product arg1) {
        return (int)(arg1.getPrice() - arg0.getPrice());
    }
});


这将创建原始列表的副本,该副本将由比较器进行排序。之后,对sortList进行迭代将按price排序(降序)

10-07 16:20
查看更多