2 one/two/three N1 4 one/two/three/four N11 5 one N2
3 Réponses :
Le code ci-dessous, lorsque je le regroupe par ID, P> {2=[One, Two, Three], 4=[One, Two, Three, Four], 5=[One]}
vous ne recevriez pas la sortie comme [un, deux, trois] code> dans la valeur à l'aide du code partagé et que la clarification posée dans les commentaires est quelque chose que l'OP doit fournir, sur la base duquel vous pouvez déterminer le Notes Valeur de colonne.
Ceci peut être obtenu en utilisant des flux de la manière suivante. Ici, je suppose que les champs sont une liste
@AllArgsConstructor
@Getter
public class Field {
private int id;
private String desc;
private String notes;
@Override
public String toString() {
return String.format("%d\t\t%s\t\t%s", id, desc, notes);
}
}
J'ai constaté que j'essaye de citer cela trop souvent dans les suggestions de révision également, que mapper code> Operation Cam invoque une fonction également. Déplacez cette logique à une fonction, puis il pourrait avoir plus de sens à l'écrire fonctionnellement. De l'autre côté, si la note et l'ID sont soi-disant identiques, vous pouvez grouper en utilisant les deux d'entre eux et en aval de la cartographie de la jointure de la description. Un peu plus de travail, mais propre imho.
Je sais, car c'est à des fins de démonstration, je n'essaye pas vraiment de séparer les choses en plusieurs fonctions. Mais je suis d'accord à 100% que ce serait plus propre. Je n'ai pas trouvé de groupe par note et ID car cela n'a pas été mentionné.
Exemple de mise en œuvre Utilisation de Lombok Annotations:
MyTest.Abc(id=2, desc=one/two/three, notes=N1) MyTest.Abc(id=4, desc=one/two/three/four, notes=N11) MyTest.Abc(id=5, desc=one, notes=N2)
Sans null code> et
est égal code> (avec
hashcode code>), on peut
collectors.groupingby (x -> arranges.aslist (x.getid (x.getid ), x.getnotes ())) code> puis dans l'entrée
(). Stream (). Plan (// Utiliser e.getkey (). Obtenez (0) ...) Code >
Comment le champ Notes est pris en compte dans votre sortie N1 pour 2, N2 pour 4.?
Pas de changement pour le champ de note. il sera le même record que le champ ID
Pas clair ce que vous voulez faire avec les notes ... Pourquoi N1 dans le premier cas? Pourquoi N2 dans la seconde?
Désolé j'ai mis à jour la question maintenant .. c'est une erreur en question maintenant je mises à jour