Java 如何为对象列表应用范围标准?
我有一个目标要说Java 如何为对象列表应用范围标准?,java,jakarta-ee,collections,arraylist,Java,Jakarta Ee,Collections,Arraylist,我有一个目标要说 class ABC{ private String name; private String code; private BigDecimal priceM; private BigDecimal priceL; private BigDecimal priceO; public String getName() { return name; } public void setName(String name) {
class ABC{
private String name;
private String code;
private BigDecimal priceM;
private BigDecimal priceL;
private BigDecimal priceO;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public BigDecimal getPriceM() {
return priceM;
}
public void setPriceM(BigDecimal priceM) {
this.priceM = priceM;
}
public BigDecimal getPriceL() {
return priceL;
}
public void setPriceL(BigDecimal priceL) {
this.priceL = priceL;
}
public BigDecimal getPriceO() {
return priceO;
}
public void setPriceO(BigDecimal priceO) {
this.priceO = priceO;
}
}
现在,假设我有一个ABC列表,在某个时刻,我希望该列表根据搜索条件进行过滤
有什么有效的方法来实现这一点吗
例如
我有
目标:
列表和我想要一个新的列表,它将包含价格在100到200之间的ABC列表谷歌番石榴有一些关于匹配器和谓词的类,可能会有所帮助 也许您可以使用反射来实现中新API的自动匹配
List items=asList(…);
Stream=items.Stream();
stream.filter(item->item.getPrice()>=100&&item.getPrice()Java提供了一个Collection.sort(list,comp)方法,该方法将list和Comparator对象作为参数
在这种情况下,传递需要排序的原始列表,并创建一个Comparator对象,并重写作为排序规则的compare方法
您可以根据需要创建多个比较器对象
请参阅下面的链接以获取更多帮助
以什么方式有效?您可以轻松地迭代该列表并放置条件以检查是否获得筛选对象。由于它是用户定义的类,您必须在使用getter和filter进行迭代时检查该值。如果我在for循环中使用if条件,则它的性能无效。您是否使用任何探查器检查/测量它,这就是您需要检查的区域需要效率吗?首先,在for循环中使用“if”是一种不好的做法……我认为它对java不适用……谢谢edwin,但我使用的是JDK1.7。
List<ABC> items = asList(...);
Stream<ABC> stream = items.stream();
stream.filter( item -> item.getPrice() >= 100 && item.getPrice() <= 200 )
.forEach ( System.out::println );