Supprimer les doublons de la Liste java8
J'ai une classe ci-dessous, et je voulais supprimer les doublons de personne qui contiennent du même nom, comment le faire en utilisant Java8 Lambda, attendue Liste contient p1, p3 de la ci-dessous.
Personne:
public class Person {
public int id;
public String name;
public String city;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
}
Test:
import java.util.ArrayList;
import java.util.List;
public class Testing {
public static void main(String[] args) {
List<Person> persons = new ArrayList<>();
Person p1 = new Person();
p1.setId(1);
p1.setName("Venkat");
p1.setCity("Bangalore");
Person p2 = new Person();
p2.setId(2);
p2.setName("Venkat");
p2.setCity("Bangalore");
Person p3 = new Person();
p3.setId(3);
p3.setName("Kumar");
p3.setCity("Chennai");
persons.add(p1);
persons.add(p2);
persons.add(p3);
}
}
regardez stackoverflow.com/questions/29670116/...
remplacer est égal à & hashcode méthodes dans la classe Personne pour la duplication de suppression de l'aide de Jeu
remplacer est égal à & hashcode méthodes dans la classe Personne pour la duplication de suppression de l'aide de Jeu
OriginalL'auteur Venkata Palakolanu | 2017-07-31
Vous devez vous connecter pour publier un commentaire.
Vous pouvez filtrer et de générer un unique
Set
:Ou même plus agréable:
persons
àList<Person>
plutôt queList<Object>
.vous venez de faire ici 🙂 assez bon
Vous avez réellement n'avez pas besoin d'un ruisseau pour cela, ne vous? Il suffit de créer le
TreeSet
avec le comparateur et ensuite utiliseraddAll
.Pas besoin de bloquer la syntaxe, vous pouvez utiliser le compact syntaxe des expressions comme ici.
vous avez raison, je n'ai pas à utiliser les flux... thx
OriginalL'auteur Eugene
la question est plutôt, pourquoi vous voulez pour se faufiler autour de la mise en œuvre de
equals
ethashCode
en premier lieu.OriginalL'auteur Taras Melnyk
Liste modifiée = pesrons.stream().recueillir des(Collectionneurs.toCollection(()->new TreeSet<>(Comparateur.la comparaison de(nom de la Personne::getName)))).stream().recueillir des(Collectionneurs.toList());
Cela retournera une liste de doublons basé sur le Nom.
Vous pouvez consulter ce aussi Supprimer les doublons d'une liste d'objets basé sur la propriété dans Java 8
OriginalL'auteur Rohit