Ich habe eine verknüpfte Liste und einige Methoden dafür erstellt. Ich wurde beauftragt, eine Namensliste zu erstellen. Im Wesentlichen wird der Benutzer angewiesen, einen Namen einzugeben, und dann sieht das Programm, ob der Name in der Liste enthalten ist. Es kompiliert, aber die einzige Sache, die ich nicht herausfinden kann, ist, wie man druckt, dass der Name nicht gefunden wurde. Danke für Ihre Hilfe! hier ist mein CodeVerkettete Listen Ausgabe
package linkedlists;
import java.util.*;
public class Link {
public String Name;
public Link next;
public Link(String Name){
this.Name = Name;
}
public void display(){
System.out.println("Name in List " + Name);
}
@Override
public String toString(){
return Name;
}
public static void main(String[] args) {
Scanner input = new Scanner (System.in);
LinkList theLinkedList = new LinkList();
theLinkedList.insertFirstLink("James");
theLinkedList.insertFirstLink("John");
theLinkedList.insertFirstLink("Michael");
theLinkedList.insertFirstLink("Peter");
theLinkedList.insertFirstLink("Allison");
theLinkedList.insertFirstLink("Daniel");
theLinkedList.insertFirstLink("George");
theLinkedList.insertFirstLink("Simon");
theLinkedList.insertFirstLink("Jason");
theLinkedList.insertFirstLink("Mark");
System.out.print("Please enter a Name to search for");
System.out.println();
String name;
name = input.nextLine();
//System.out.println(theLinkedList.find(name).Name);
if (theLinkedList.find(name).Name == null){
System.out.println("Not Found");
System.out.println();
theLinkedList.display();
}
else {
System.out.println(theLinkedList.find(name).Name + " was found.");
System.out.println();
theLinkedList.display();
}
}
}
und dies ist die Linklist Klasse Klasse Linklist { public link FIRST;
LinkList(){
firstLink = null;
}
public boolean isEmpty(){
return (firstLink == null);
}
public void insertFirstLink(String Name){
Link newLink = new Link(Name);
newLink.next = firstLink;
firstLink = newLink;
}
public Link removeFirst(){
Link linkReference = firstLink;
if (!isEmpty()){
firstLink = firstLink.next;
}
else {
System.out.println("Empty Linked List");
}
return linkReference;
}
public void display(){
Link theLink = firstLink;
while (theLink != null){
theLink.display();
System.out.println("Next Name in List: " + theLink.next);
theLink = theLink.next;
System.out.println();
}
}
public Link find(String Name){
Link theLink = firstLink;
if(!isEmpty()){
while(!(theLink.Name.equals(Name))){
if(theLink.next == null){
return null;
} else {
theLink = theLink.next;
}
}
} else {
System.out.println("Empty LinkedList");
}
return theLink;
}
public Link removeLink(String Name){
Link currentLink = firstLink;
Link previousLink = firstLink;
while(currentLink.Name != Name){
if (currentLink.next == null){
return null;
}
else{
previousLink = currentLink;
currentLink = currentLink.next;
}
}
if (currentLink == firstLink){
firstLink = firstLink.next;
}
else {
System.out.println(" Found a match!");
System.out.println("Current Link: " + currentLink);
System.out.println("First Link: " + firstLink);
previousLink.next = currentLink.next;
}
return currentLink;
}
}
Diese Logik scheint reif für eine NullPointerException. Wenn die Liste leer ist, geben Sie eine Nullverbindung zurück. Dann versuchen Sie, auf den Namen zuzugreifen ... –