Je suis juste un débutant et apprendre Java à mye!
J'ai juste une arrayliste d'objets d'utilisateurs: puis je crée un modèle comme: p> et a ajouté les éléments de modèle comme suit: p> Ce que je veux faire est d'imprimer le modèle de cette manière qui devrait afficher des données groupées similaires avec le nom de groupe comme: P> abc ->
users:::123
users:::246
users:::456
def ->
users:::888
users:::999
4 Réponses :
Un moyen rapide et facile de faire ce que vous voulez, c'est d'utiliser un Ensuite, votre code changerait comme suit: P>
Enfin, vous iriez alors itérairez-vous sur le hashmap, imprimant la clé et les valeurs qu'elle a. p> hashmap code>. Les cartes de hachage sont des collections de la valeur clé, fils dans votre cas, vous créeriez un
HASHMAP
existe code> dans le hashmap, ajoutez le
usernumber code> à celui-ci. Li>
usernumber code> comme premier élément de sa liste. LI>
ol>
Essayez quelque chose comme ci-dessous à l'aide des flux Java.
//group by user name Map<String, Set<String>> map = model.stream().collect( Collectors.groupingBy(Users::getUserName, Collectors.mapping(Users::getUserNumber, Collectors.toSet()) ) ); System.out.println(map);
import java.util.ArrayList; import java.util.HashMap; import java.util.List; public class MainMethod { private static HashMap<User, ArrayList<User>> maps; private static ArrayList<User> user1list; private static ArrayList<User> user2list; public static void main(String...args) { maps = new HashMap<>(); user1list = new ArrayList<>(); user2list = new ArrayList<>(); User user1 = new User("Ram", "1234"); User user2 = new User("Alish", "5678"); User user3 = new User("Ram", "91011"); User user4 = new User("Alish", "121314"); user1list.add(user1); user1list.add(user3); user2list.add(user2); user2list.add(user4); maps.put(user1, user1list ); maps.put(user2, user2list); /// User one lists for ( User userone: maps.get(user1)) { System.out.println("userone Name:::"+userone.getUserName()); System.out.println("User one Number:::"+userone.getUserNumber()); } System.out.println(); // USer tow list for (User usertwo: maps.get(user2)) { System.out.println("User two Name:::" +usertwo.getUserName()); System.out.println("User two Number :::" +usertwo.getUserNumber()); } } }
Veuillez essayer le code ci-dessous - } p> p>
Vous devez utiliser
java.util.map code>, ce DataStructure contient une paire de valeurs de clé. Votre clé sera un nom d'utilisateur et une valeur sera la liste d'Usernumber. Ensuite, vous pouvez avoir une boucle qui imprime les entrées de la carte. Vous pouvez également lire sur Java8 Stream API. Tous mes vœux :)
Si vous souhaitez imprimer des données, vous pouvez utiliser la méthode de l'oveeride ToString dans la classe d'utilisateurs. lien ( Stackoverflow.com/Questtions / 10734106 / ... )