0
votes

Java Print ArrayList Groupes avec nom de groupe

Je suis juste un débutant et apprendre Java à mye! J'ai juste une arrayliste d'objets d'utilisateurs: xxx pré>

puis je crée un modèle comme: p> xxx pré>

et a ajouté les éléments de modèle comme suit: p> xxx pré>

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  


2 commentaires

Vous devez utiliser java.util.map , 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 / ... )


4 Réponses :


0
votes

Un moyen rapide et facile de faire ce que vous voulez, c'est d'utiliser un hashmap . Les cartes de hachage sont des collections de la valeur clé, fils dans votre cas, vous créeriez un HASHMAP > qui stocke le nom d'utilisateur comme clé et la < Code> Usernumber comme liste de valeurs (puisque vous avez plus de 1).

Ensuite, votre code changerait comme suit:

  1. Itérate sur tous les utilisateurs que vos ont.
  2. Si le nom d'utilisateur existe dans le hashmap, ajoutez le usernumber à celui-ci.
  3. Si le nom d'utilisateur n'existe pas, ajoutez-le à la hachemap avec le usernumber comme premier élément de sa liste.

    Enfin, vous iriez alors itérairez-vous sur le hashmap, imprimant la clé et les valeurs qu'elle a.


0 commentaires

0
votes

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);


0 commentaires

0
votes
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());
    }
  }
 }

0 commentaires

0
votes

Veuillez essayer le code ci-dessous - xxx

}


0 commentaires