例:
これにより、1 つのフィールドを抽出できます
Collection<X> base=...;
List<?> c=base.stream().map(->i.getField()).distinct.collect(Collectors.toList()));
これには補助コレクションが必要です
Collection<X> fromBase; //empty collection
Collection<X> base=...;
List<?> c=base.stream().forEach(i->{
X k=...; //create object X with some fields
fromBase.add(k);
});
.map() のように、より多くのフィールドを直接抽出する方法はありますか?
基本的な例:
List<X> lst;
private void collectDistinctItems(){
lst = new ArrayList<>();
getSomeItems().stream().forEach(i->{ //Collection<X>
X tmp=new X();
tmp.setField1(i.getField1()); //copy some fields
tmp.setField2(i.getField2());
tmp.setField3(i.getField3());
...
if(!lst.contains(tmp)) lst.add(tmp); //add new X item to X type list
});
}