您好,这是第一次使用此网站回答任何问题,因此请注意格式错误,而且英语是我的第二语言。因此,在我的计算机科学类(class)中,我们被要求设计一个字符串链接列表来组成一个单词,例如 l-e-t-t-e-r-s,我在制作类(class)时完全没有遇到任何麻烦,除非在任何 IDE 上运行它时,它根本找不到主课。我还测试了另一个简单的 hello world 项目,看看我的 IDE 是否正常工作以及 hello world 是否正常工作。另外,如果有人发现我的编码有任何问题,请随时给我反馈。
SinglyLinkedList接口(interface):
public interface SinglyLinkedListInterface<String>
{
public void print ( );
public void traversal ( );
public Node getNext ( );
public void addStringToFront (String newItem);
public void addStringToRear (String newItem);
public void addStringToMiddle (Node pos, String newItem);
public String deleteFromFront ( );
public String deleteFromRear ( );
public String deleteFromMiddle (Node pos);
public boolean isEmpty ( );
}
节点:
public class Node<String>
{
public String data;
public Node link;
public Node ( )
{
data = null;
link = null;
}
public Node (String newItem)
{
data = newItem;
link = null;
}
public void setData (String newData)
{
data = newData;
}
public void setLink (Node newLink)
{
link = newLink;
}
public String getData ( )
{
return data;
}
public Node getLink ( )
{
return link;
}
public java.lang.String toString ( )
{
return data.toString ( );
}
}
单链表:
public class SinglyLinkedList<String> implements SinglyLinkedListInterface<String>
{
private Node head;
private Node cursor;
public SinglyLinkedList ( )
{
head = null;
cursor = null;
}
public boolean isEmpty ( )
{
return head == null;
}
public Node getNext ( )
{
if (isEmpty ( ))
return null;
else
{
if (cursor.getLink ( ) == null)
return null;
else
{
cursor = cursor.getLink ( );
return cursor;
}
}
}
private void resetCursor ( )
{
cursor = head;
}
public void traversal ( )
{
if (!isEmpty ( ))
{
resetCursor ( );
System.out.println (cursor);
while (getNext ( ) != null)
System.out.println (cursor);
}
}
public void print ( )
{
traversal ( );
}
public void addStringToFront (String newItem)
{
Node newNode = new Node (newItem);
newNode.setLink (head);
head = newNode;
}
private Node moveStringToRear ( )
{
if (cursor != null) //do it only when the list is not empty
{
while (getNext ( )!= null);
}
return cursor;
}
public void addStringToRear (String newItem)
{
if (isEmpty ( ))
addStringToFront (newItem);
else
{
Node newNode = new Node (newItem);
moveStringToRear ( );
cursor.setLink (newNode);
}
}
private Node backStringrack ( )
{
if (cursor != head)
{
Node temp = head;
while (temp.getLink ( ) != cursor)
temp = temp.getLink ( );
cursor = temp;
return cursor;
}
else
return null;
}
//for sorted linked list
public void addStringToMiddle (Node pos,String newItem)
{
Node newNode = new Node (newItem);
cursor = pos;
backStringrack ( );
newNode.setLink (pos);
cursor.setLink (newNode);
}
public String deleteFromFront ( )
{
String deleted = null;
if (!isEmpty ( ))
{
resetCursor ( );
deleted = (String) cursor.getData ( );
head = head.getLink ( );
resetCursor ( );
}
return deleted;
}
public String deleteFromRear ( )
{
String deleted = null;
if (!isEmpty ( ))
{
moveStringToRear ( );
deleted = (String) cursor.getData ( );
if (backStringrack ( ) != null)
cursor.setLink (null);
else //the deleted node at rear is the only node in the list
head = cursor = null;
}
return deleted;
}
//for sorted linked list
public String deleteFromMiddle (Node pos)
{
cursor = pos;
backStringrack ( );
cursor.setLink (pos.getLink ( ));
return (String)pos.getData ( ); //corrected 09172014
}
public Node Search1(String key)
{ while(getNext()!= null)
{
if(key.equals(getNext().getData()))
{
cursor.setLink(head);
}
}
return cursor ;
}
}
主要:
public class String
{
public static void main (String [] args)
{
SinglyLinkedList x = new SinglyLinkedList();
x.addStringToFront("s");
x.addStringToFront("r");
x.addStringToFront("e");
x.addStringToFront("t");
x.addStringToFront("t");
x.addStringToFront("e");
x.addStringToFront("l");
x.print();
}
}
最佳答案
您不应该调用主类String
。
此外,大多数 NoClassDefFound/ClassNotFound
可以通过简单地运行 clean 和 build 来解决。
编辑
Java 通过 FQN
(完全限定类名)引用类名,但是内置语言结构会被自动识别(例如 String
-> java .lang.String
)
如果您需要调用您的类String
,您将需要通过其FQN引用所有基于语言(java)的实例(假设您的String
类对所有你的类,即在类路径上)
关于未找到 Java 主类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25968390/