public ClassA
{
private String firstId;
private String secondId;
public void setFirstId(String firstId) {
this.firstId = firstId;
}
public String getFirstId() {
return id;
}
public void setSecondId(String secondId) {
this.secondId = secondId;
}
public String getSecondId() {
return secondId;
}
}
public ClassB
{
private String firstId;
private String secondId;
public void setFirstId(String firstId) {
this.firstId = firstId;
}
public String getFirstId() {
return id;
}
public void setSecondId(String secondId) {
this.secondId = secondId;
}
public String getSecondId() {
return secondId;
}
}
は、私は私は2つの配列リストに追加しています(もちろんの名前を除いて)全く同じです上記2クラス(POJOを)持っています。私は2つのオブジェクトが同じかどうか比較する必要があります。それらが同じであれば、別のリスト(commonList)に追加する必要があり、別のリスト(differentList)に追加する必要があります。私は、次のコードを書かれている:オブジェクト比較:aListAとaListB:JAVA
ClassA clsA = null;
public ArrayList genCommonList(aList, bList)
{
for(int i = 1; i<aList.size(); i++)
{
clsA = new ClassA;
Object obj = aList.get(i);
clsA = (ClassA)obj;
if(bList.contains(clsA)
{
genCommonList.add(clsA);
}
}
public ArrayList genDifferentList(aList, bList)
{
for(int i = 1; i<aList.size(); i++)
{
clsA = new ClassA;
Object obj = aList.get(i);
clsA = (ClassA)obj;
if(!bList.contains(clsA)
{
genDifferentList.add(clsA);
}
}
私の問題は、2つの異なるのPOJOのデータ(両方の変数、firstIdとsecondID)が同じであっても、彼らは別のリストに入れてしてしまうことがあります。つまり、ArrayListクラスのcontains()メソッドを使用して、オブジェクトの平等性が比較されていないことを意味します。 POJO内の各変数からデータを取得して比較したいとは思っていません。両方の変数のPOJOを比較し、等しいかどうかを判断する方法はありますか?
どうしても2つの異なるクラスがあるのはなぜですか? –