1

私は1つのオブジェクトを言う

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 : リストと、100 から 200 の間の priceM 値を持つ ABC のリストを含む新しいリストが必要です

4

3 に答える 3

1

JDK8の新しいAPI

List<ABC> items = asList(...);
Stream<ABC> stream = items.stream();
stream.filter( item -> item.getPrice() >= 100 && item.getPrice() <= 200 )
      .forEach ( System.out::println );
于 2012-12-24T08:14:43.397 に答える
1

Google Guava には、MatchersPredicateに関するいくつかのクラスがあり、それが役立つ可能性があります

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

リフレクションを使用して自動マッチングを実現できるかもしれません

于 2012-12-24T07:39:14.543 に答える
0

Javaは、リストとComparatorオブジェクトを引数として受け取る Collection.sort(list, comp)メソッドを提供します。

その場合、並べ替える必要がある元のリストを渡し、 Comparator オブジェクトを作成し、並べ替えのルールである比較メソッドをオーバーライドします。

要件に基づいて、複数のComparatorオブジェクトを作成できます。

詳細については、以下のリンクを参照してください。

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

  2. 異なるタイミングで異なるパラメータでリストをソートするにはどうすればよいですか

于 2012-12-24T08:17:09.890 に答える