如何应用对象列表的范围标准?

时间:2012-12-24 07:31:03

标签: java java-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) {
        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之间

3 个答案:

答案 0 :(得分:1)

Google Guava有一些关于 Matchers Predicate 的课程可能会有所帮助

http://java.dzone.com/articles/google-guava-goodness-matching

也许您可以使用反射来实现自动匹配

答案 1 :(得分:1)

JDK 8

中的新API
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对象并覆盖比较方法,该方法是排序规则。

您可以根据自己的要求创建多个比较器对象。

请参阅以下链接以获取更多帮助。

  1. http://www.vogella.com/blog/2009/08/04/collections-sort-java/

  2. How do I sort a list by different parameters at different timed