【发布时间】:2016-05-01 18:47:02
【问题描述】:
我想使用接口迭代器以指定的顺序迭代列表。 在这种情况下,我想按 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;
}
我有一个公开的方法来获取价格。 我该如何解决这个问题?
【问题讨论】:
-
你必须编写一个比较器,用这个比较器对列表进行排序(这非常昂贵)并迭代排序的列表
-
有没有机会在不排序列表的情况下做到这一点?
-
这真的取决于你想要做什么。如果您想按特定顺序浏览列表,那么您很可能需要对其进行排序。
-
@MassimoLavermicocca 我认为如果不对列表进行排序,您将无法做到这一点。唯一的另一种可能性是保留一个已经排序的列表并在每次插入元素时保持排序(插入时成本更高)