[JAVA] Ein Memo, das unerwartet schwierig war, obwohl es einfach schien, zwischen zwei Entitäten auszutauschen

Es war schwierig oder lang

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

Ein Memo, das unerwartet schwierig war, obwohl es einfach schien, zwischen zwei Entitäten auszutauschen
Ein Memo, das nüchtern von der Anfrage nach mehrteiligen / Formulardaten abhängig war
Erstellt eine Bibliothek, die die Handhabung von freigegebenen Android-Einstellungen erleichtert
Es war überraschend einfach. So aktualisieren Sie Benutzerinformationen, ohne ein Kennwort einzugeben