2013-03-27 2 views
0

Donc maintenant j'écris un programme qui prendra une entrée utilisateur tels que:Comment associer des entrées utilisateur lues dans plusieurs listes chaînées?

  • « Jeff » pour un prénom
  • « Henderson » pour un nom de famille
  • un numéro de téléphone les
  • une quantité à stocker dans leur compte bancaire

Et stocker tout dans une liste chaînée.

Si je devais ajouter une autre personne avec cette information similaire, comment cela pourrait-il être stocké dans la liste des liens, à tel point que je pourrais accéder aux informations des deux individus séparément?

En ce moment, j'utilise ceci pour établir tout le stockage lors de la saisie d'un nouvel utilisateur:

private final Scanner keyboard; 

private final LinkedList<String> firstName; 
private final LinkedList<String> lastName; 
private final LinkedList<String> teleNumber; 
private final LinkedList<String> accountBalance; 

public bankdata() 
{ 
    this.keyboard = new Scanner(System.in); 
    this.firstName = new LinkedList<String>(); 
    this.lastName = new LinkedList<String>(); 
    this.teleNumber = new LinkedList<String>(); 
    this.accountBalance = new LinkedList<String>(); 
} 

Je prévois d'utiliser keyboard.next(); pour lire l'entrée d'utilisateur et ensuite utiliser une méthode d'ajouter que j'ai écrit stocker l'information dans chaque liste liée.

La façon dont il est mis en place est qu'il ya une liste chaînée pour chaque variable d'objet comme:

  • une liste chaînée pour le premier nom
  • une liste chaînée pour la dernière
  • un Linked liste pour le numéro de télé
  • une liste chaînée pour le solde du compte

Si je veux appeler l'information associée à une personne spécifique, comment l'ai-je quand je demande aux utilisateurs des informations que je peux voir toutes ses affaires si elles sont dans une autre liste liée?

Répondre

1

Il s'agit ici de créer votre propre structure de données. Je dirais un peu plus sur LinkedList. Presque tous les exemples de listes en ligne peuvent vous aider. Conseil: créez une classe pour votre nœud et stockez toutes les informations relatives à chaque personne dans ce nœud.

EDIT: Juste pour compléter la réponse: How do I create a Linked List Data Structure in Java?

EDIT 2: En fonction de votre édition OP, je pense que vous voulez avoir 4 LinkedLists et trouver toutes les informations pour une personne. Je suppose que vous allez chercher par le nom de la personne (sinon, le processus est toujours le même). En outre, il est supposé que l'information pour une personne est stockée au bon nœud correspondant. Ainsi, person1 a toutes les informations dans les premiers noeuds de l'ensemble des 4 listes, person2 a tous les noeuds à « index » 1.

Ainsi, vous commencer à chercher les noms de stockage LinkedList, et arrêtez dès que vous trouvez le nom (ou lancer une erreur si introuvable). Gardez également une trace du nombre de nœuds que vous avez vu. Ce sera l'index dont vous avez besoin pour obtenir des informations pour toutes les autres listes.

Maintenant, en utilisant la boucle for, parcourez le nombre approprié de fois sur chacune des 3 listes restantes, et renvoyez la valeur rencontrée.

+0

Merci pour votre contribution, ceci est cependant un peu sous mon champ de codage pour ce projet spécifique. Je m'excuse pour mon incompréhension de mon propre matériel quand je l'ai posté, mais j'ai rapidement compris ce que j'avais besoin de faire. J'ai édité le PO dans le but de demander de l'aide pour associer des informations d'une liste liée à l'autre. –

+1

voir ma réponse éditée. –

+0

OK! Donc, fondamentalement, je peux juste chercher une qualité associée à l'utilisateur et l'index devrait s'aligner dans chaque nœud! Donne un sens XD –

0

Il serait plus facile de regrouper toutes ces données dans une classe, puis d'utiliser une table de hachage comme structure de données, vous devriez trouver beaucoup de ressources en ligne sur Hashtable également vérifier http://javarevisited.blogspot.com/2012/01/java-hashtable-example-tutorial-code.html. A propos de l'obtention d'une entrée ... vous pouvez la stocker dans un tableau puisque le nombre de variables est fixe, puis utilisez Arrays.toList() pour l'afficher dans une liste et éventuellement utiliser un commutateur dans la boucle pour initialiser vos variables. Notez qu'il existe des alternatives à la structure de la table de hachage, mais je vous recommande de récupérer vos données plus tard et cela pourrait devenir important.

+0

Nous vous remercions de votre suggestion. Cependant, je sais déjà comment utiliser correctement les listes de tableaux. J'essaie d'apprendre de nouvelles astuces avec une méthode de stockage différente. Donc, je ne suis pas intéressé par l'utilisation d'une table de hachage ou de tableaux. –

0

Ceci est un Primitive Obsession typique.

Vous devez utiliser un objet pour enregistrer les données. Ce serait plus flexible et facile à utiliser.