未找到 Java 主类

标签 java singly-linked-list

您好,这是第一次使用此网站回答任何问题,因此请注意格式错误,而且英语是我的第二语言。因此,在我的计算机科学类(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/

相关文章:

java - 在 Groovy 中难以格式化日期

Java 最好的设计是对象可以不同,但​​做的事情是一样的

java - 如果 <T> 不是输入参数,参数化方法如何解析?

c++ - 单链表无限循环

java - Java中保留单链表的头

java - Java的NPE注解场景和静态分析工具

java - 字符串键混合大写会覆盖 Hashmap 中的条目

c - 这个c代码(链表实现)有什么问题?

c++ - C++ 链表与动态分配挫败

rust - 为什么我不能将这个尾递归函数转换为 Rust 中的迭代函数?