Es ist ein vollständiges Memorandum
Es gibt zwei Modelle Beseitigen Sie die Daten, die PK trägt Behalten Sie den Rest der Daten als Liste
package test;
public class Models {
class Model1 {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Model2 {
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
package test;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import test.Models.Model1;
import test.Models.Model2;
/**
* test
*
* @author me
*
*/
public class Test2 {
/**
* main
* @param args
*/
public static void main(String[] args) {
distinct();
}
/**
*Der Typ, der PK-Nebel aus dem Modell entfernt
*/
private static void distinct() {
Models models = new Models();
List<Model1> list1 = Collections.synchronizedList(new ArrayList<Model1>());
List<Model2> list2 = Collections.synchronizedList(new ArrayList<Model2>());
Models.Model1 model1 = models.new Model1();
model1.setId("1");
model1.setName("asdasdasdas");
list1.add(model1);
Models.Model1 model11 = models.new Model1();
model11.setId("2");
model11.setName("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa");
list1.add(model11);
Models.Model2 model2 = models.new Model2();
model2.setId("1");
list2.add(model2);
Models.Model2 model22 = models.new Model2();
model22.setId("2");
list2.add(model22);
Models.Model2 model222 = models.new Model2();
model222.setId("3");
list2.add(model222);
/** -----Diese Funktion----- */
//PK-Liste von Liste1 mit Ausnahme derjenigen, die Liste2 und PK tragen
List<String> uniKeyList = list1.stream().map(data1 -> data1.getId())
.filter(key1 -> list2.stream().map(data2 -> data2.getId()).anyMatch(key2 -> key1.equals(key2)))
.collect(Collectors.toList());
//Suche list1 mit uniKeyList
List<Model1> uniData = list1.stream()
.filter(data -> uniKeyList.stream().anyMatch(key -> data.getId().equals(key)))
.collect(Collectors.toList());
System.out.println(uniData);
}
}
Erstellen Sie zunächst eine Liste der PKs ohne Nebel
Suchen Sie aus der Liste der Originalmodelle
Ich habe den Schritt unternommen, die Nebel-PK-Daten zu entfernen
Absolut verschwenderisch ... Ich denke, wir sollten es klüger machen können
Recommended Posts