[JAVA] Un mémo étonnamment difficile même s'il semblait facile d'échanger entre deux Entités

C'était difficile ou long

C'est un mémorandum complet

Il existe deux modèles Éliminez les données que PK porte Conservez le reste des données sous forme de 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();
	}

	/**
	 *Le gars qui élimine le brouillard PK du modèle
	 */
	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);

		/** -----Cette fonction----- */
		//Liste PK de list1 à l'exclusion de celles que list2 et PK portent
		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());
		//Rechercher list1 avec uniKeyList
		List<Model1> uniData = list1.stream()
				.filter(data -> uniKeyList.stream().anyMatch(key -> data.getId().equals(key)))
				.collect(Collectors.toList());
		System.out.println(uniData);

	}

}

Tout d'abord, faites une liste de PK sans brouillard

Rechercher dans la liste des modèles originaux

J'ai pris le pas d'éliminer les données de brouillard PK

Absolument gaspillage ... Je pense que nous devrions pouvoir le rendre plus intelligent

Recommended Posts

Un mémo étonnamment difficile même s'il semblait facile d'échanger entre deux Entités
Un mémo sobrement accro à la demande de multipart / form-data
Création d'une bibliothèque qui facilite la gestion des préférences partagées Android
C'était étonnamment facile. Comment mettre à jour les informations utilisateur sans entrer de mot de passe