これを行う1つの方法は、リストをcnk Stringでソートし、各連続したcnkストリングを次のストリングと比較するコンパレータを作成することです。重複が見つかった場合、それらは互いにすぐ隣にあります。
1.)cnk変数をソートしてコンパレータを使用してリストをソートします。
2.)リストの各要素を重複の次の要素と比較します。
これを解決するには他にも多くの方法がありますが、これは最初のことです。
私はあなたが笑あらかじめご了承されているので、これをテストしていない:
ArrayList<Riziv> rizArray = new ArrayList<Riziv>();
//Sort the array by the CNK variable.
Collections.sort(rizArray, new Comparator<Riziv>(){
@Override
public int compare(Riziv arg0, Riziv arg1) {
//Return the comparison of the Strings.
//Use .compareToIgnoreCase if you want to ignore upper/lower case.
return arg0.getCnk().compareTo(arg1.getCnk());
}
});
//List should be in alphabetical order at this point.
List<Riziv> duplicates = new ArrayList<Riziv>();
Riziv rizPrevious = null;
for(Riziv riz: rizArray){
if(rizPrevious == null){
rizPrevious = riz;
continue;
}
if(riz.getCnk().compareTo(rizPrevious.getCnk()) == 0){
duplicates.add(riz);
}
rizPrevious = riz;
}
"同じcnkでないすべてのオブジェクト"と言うとき、正確に何をしたいですか?特に、* what *と同じcnkではありませんか? – Gabe
Peter Lawreyが最高の答えを示していますが、cnk = xxxの場合は4、cnk = yyyの場合は4、cnk = zzzの場合は4など、複数の重複がある場合は何をしたいのかは不明です。 – Vort3x
すべての要素のcnkが同じ場合、trueを返します。すべての要素を含むarrayListを返していない場合。 – itro