getNext() Liste Liée
Je suis vraiment nouveau à Java et StackOverflow merci donc de ne pas être méchant. Je voudrais vraiment l'apprécier un peu d'aide. Je vous remercie à l'avance.
J'ai l'impression que c'est vraiment facile, et j'ai déjà essayé un million de différentes façons, mais il ne fonctionne pas.
Je suis en train de prendre dans un fichier texte et l'enregistrer dans une liste, et j'essaye d'accéder à la troisième noeud de cette liste liée. Pour une raison quelconque, je peux accéder à la premier nœud, alors je peux utiliser le getNext() la commande pour aller vers le nœud suivant, mais lorsque j'essaie d'utiliser getNext() pour aller à la troisième nœud, elle continue à renvoyer le second nœud. Donc il ne va pas à la troisième nœud.
Suis-je en manque quelques clés de concept? Aussi laissez-moi savoir si vous avez besoin de plus d'informations.
Le fichier texte qui a été adoptée est la suivante:
5
A B C D E
A B //C'est la ligne que je veux
B C
B D
C D
C E
D E
Voici la partie de mon code:
public static void main(String[] args) throws IOException{
/**
* Check whether the user types the command correctly
*/
if (args.length != 1)
{
System.out.println("Invalid input");
System.out.println(args.length);
System.exit(1);
}
String filename = args[0];
Scanner input = new Scanner (new File(filename));
LinkedList<String> linkedList= new LinkedList<String>();
while(input.hasNext())
{
linkedList.addToRear(input.nextLine());
}
LinearNode<String> link= linkedList.firstLink;
String temp = " ";
link.getNext();
temp = (String)link.getElement();
String[] numofVerticesArray = temp.split(" ");
int numOfVertices = Integer.parseInt(numofVerticesArray[0]);
int lineNumber = 1;
String [] arrayOfVertices;
LinearNode<String> secondLine = link;
String temp2;
for (int i=0; i <= lineNumber; i++)
{
secondLine = link.getNext();
}
lineNumber = 2;
temp2 = (String)secondLine.getElement();
arrayOfVertices = temp2.split(" ");
int[][] adjMatrix = new int[numOfVertices][numOfVertices];
LinearNode<String> edgeLine = link;
String [] arrayOfEdge;
int rowCount = 0;
int columnCount = 0;
String temp3;
lineNumber = 2;
for (int i=0; i <= lineNumber; i++)
{
edgeLine = link.getNext();
System.out.print((String)edgeLine.getElement());
//When this is printed out, the second node's
//content is printed out, not the third node
}
lineNumber++;
temp3 = (String)edgeLine.getElement();
arrayOfEdge = temp3.split(" ");
- Globalement, je dirais proposons d'examiner les concepts et d'essayer de réécrire le programme à partir de zéro(il serait de bonne pratique pour vous). Aussi garder à l'esprit que si vous appelez
getNext
alors assurez-vous de le stocker quelque part et s'en souvenir. Dans votre code chaque fois que vous appelezgetNext
vous garder en permanence sur l'oubli de lagetNext
valeur
Vous devez vous connecter pour publier un commentaire.
Vous continuer à demander pour le deuxième élément de la LinkedList.
définit la valeur du deuxième élément de la LinkedList lien en
edgeLine
, et puis vous boucle et faire la même chose, et puis, en même plus de et plus et plus de nouveau.Essayer de faire
Ce continuerons à aller de l'.
La seule attribution de vous rendre à la
link
variable est: est-celink= linkedList.firstLink;
. Vous n'êtes jamais à l'attribution de rien d'autre pour elle. Afin de l'appelantlink.getNext()
renverra toujours le même nœud, à savoir la seconde.link
n'est pas un itérateur, donc vous ne pouvez pas appelergetNext()
et de l'avance par le biais de la liste chaînée.