user8616404:
Hyが、私は2つのリストを比較するとのトラブルを抱えています。目標は、二つのリストを比較し、同じ値を見つけて、3番目のリストにそれらの値を格納することです。私はまだまで発見したことは、単にブール値を返す方法が、リスト値を返す方法はありません。..任意のアイデアですか?
ここでは、データベースから値を取得するための私の二つの方法があります:
@Override
public List<BrojPolice> dohvatiBrojPolice() {
List<BrojPolice> filter = jdbcTemplate.query("SELECT*FROM ins2.kalk_cpi;",new Object[]{},
(rs,rowNum) ->{
BrojPolice bp = new BrojPolice();
bp.setBroj(rs.getString("BROJ_POLICE"));
return bp;
});
return filter;
}
@Override
public List<BrojPolice> dohvatiBrojPolice2() {
List<BrojPolice> filter2 = jdbcTemplate.query("SELECT*FROM ins_RAZNO.ADND_DATOTEKA;",new Object[]{},
(rs,rowNum) ->{
BrojPolice bp = new BrojPolice();
bp.setBroj(rs.getString("BROJ_POLICE"));
return bp;
});
return filter2;
}
public List<String> brojPolice(){
boolean match = dohvatiBrojPolice().contains(dohvatiBrojPolice2());
//ideas?
return //List
}
また:
あなたは使用することができますList.retainAll
よう:
List<BrojPolice> common = new ArrayList<>(dohvatiBrojPolice());
common.retainAll(dohvatiBrojPolice2());
これは、必要となるBrojPolice
適切と匹敵するhashCode
とequals
。
あなたは、このためのストリームまたはforEachのソリューションを探しているなら
List<BrojPolice> common = dohvatiBrojPolice().stream()
.filter(a -> dohvatiBrojPolice2().contains(a))
.collect(Collectors.toList());