我有一个对象说
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列表,在某些时候我希望该列表根据searchCriteria进行过滤。
有没有有效的方法来实现这一目标...... ???
示例,
我有
AIM : 列表,我想要新的列表,其中包含ABC的列表,其中priceM值介于100到200之间
答案 0 :(得分:1)
Google Guava有一些关于 Matchers 和 Predicate 的课程可能会有所帮助
http://java.dzone.com/articles/google-guava-goodness-matching
也许您可以使用反射来实现自动匹配
答案 1 :(得分:1)
List<ABC> items = asList(...);
Stream<ABC> stream = items.stream();
stream.filter( item -> item.getPrice() >= 100 && item.getPrice() <= 200 )
.forEach ( System.out::println );
答案 2 :(得分:0)
Java提供 Collection.sort(list,comp)方法,该方法将列表和 Comparator 对象作为参数
在这种情况下,传递您需要排序的原始列表并创建一个Comparator对象并覆盖比较方法,该方法是排序规则。
您可以根据自己的要求创建多个比较器对象。
请参阅以下链接以获取更多帮助。