Ich möchte zwei ähnliche Arraylist kombinieren. Wenn jedoch die Eigenschaft eines Objekts mit der Eigenschaft eines anderen Objekts übereinstimmt, werden sie in einer Bedingung kombiniert.Kombinieren Sie zwei ArrayList des Objekts und bedingt den Wert des Objekts beim Kombinieren
Hier meine Modellklasse ist
public class SampleModel {
int number;
String name;
boolean isSimilar;
public SampleModel(int number, String name, boolean isSimilar) {
this.number = number;
this.name = name;
this.isSimilar = isSimilar;
}
public int getNumber() {
return number;
}
public void setNumber(int number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public boolean isSimilar() {
return isSimilar;
}
public void setSimilar(boolean similar) {
isSimilar = similar;
}
@Override
public boolean equals(Object o) {
boolean result = false;
if (this == o){
result = true;
}
if (o == null || getClass() != o.getClass()){
result = false;
}
SampleModel that = (SampleModel) o;
if(name.matches("(.*)"+that.name+"(.*)")){
result = true;
}
if(name.matches("(.*)"+that.name)){
result = true;
}
if(name.matches(that.name+"(.*)")){
result = true;
}
if(name.contains(that.name)){
result= true;
}
return result;
}
@Override
public int hashCode() {
return Objects.hash(name);
}
}
Und ich habe zwei arrylist dieser Art von Objekt wie dieses
ArrayList<SampleModel> sampleModels_one = new ArrayList<SampleModel>();
ArrayList<SampleModel> sampleModels_two = new ArrayList<SampleModel>();
ArrayList<SampleModel> combined = new ArrayList<SampleModel>();
sampleModels_one.add(new SampleModel(1,"a",true));
sampleModels_one.add(new SampleModel(1,"b",true));
sampleModels_one.add(new SampleModel(1,"c",true));
sampleModels_two.add(new SampleModel(1,"b",false));
sampleModels_two.add(new SampleModel(2,"c",false));
sampleModels_two.add(new SampleModel(3,"d",false));
sampleModels_two.add(new SampleModel(3,"e",false));
ich sie in einer solchen Art und Weise kombinieren wollen, so dass der Ausgang von combined
, wird so sein
SampleModel(1,"a",true)
SampleModel(1,"b",true)
SampleModel(1,"c",true)
SampleModel(1,"d",false)
SampleModel(1,"e",false)
Ich habe andere SO Frage gesucht, konnte aber nicht finden ein effizienter Weg dazu. Vielen Dank im Voraus
Danke, du gerettet gerade meinen Tag –