【问题标题】:Java split listJava拆分列表
【发布时间】:2012-10-18 02:24:11
【问题描述】:

我有一个任务是创建一个链表并分成两个子列表 现在我的代码有错误。如果有人可以帮助我编写代码,我无法弄清楚每次需要更改的地方,因为我更改了一些它给了我更多的错误。

public class UnorderedLinkedList<E extends Comparable<? super E>> extends LinkedList<T>
{
    public void splitMid(LinkedList<String> subList)
    {
        LinkedList<T> current;//the head pointer
        LinkedList<T> mid;//the mid point 

        //Node first = firstNode;
        //Node last = firstNode;

        //Node subListFirst;
        //Node subListLast;
        int i;

        if(head == null)
        {
            subList.head = null;
            subList.last = null;
            subList.count = 0;
        }
        else
        {
            //mid =
            head = null;
            current = head.next;
            i = 1;

            if(current != null)
                current = current.next;

            while(current != null)
            {
                mid = mid.next;
                current = current.next;
                i++;

                if(current != null)
                    current = current.next;
            }

             subList.head = head.next;
             subList.last = last;
             last = mid ;
             last.next = null;

             subList.count = count - i;
             count = i;
        }
    }
}

错误信息

G:\LinkedList\src\LinkedList.java:184: 错误:找不到符号 subList.count = 0;

符号:变量计数。

位置:LinkedList.Node 类型的变量子列表

其中 T,E 是类型变量:

T 扩展类 LinkedList 中声明的 Object。

E 扩展类 LinkedList.UnorderedLinkedList 中声明的 Comparable

我的主要课程:

public void main(String args[])
{
    LinkedList<Integer> myList = new LinkedList<Integer>();
    LinkedList<Integer> subList = new LinkedList<Integer>();

    myList.addLast(34);
    myList.addLast(65);
    myList.addLast(87);
    myList.addLast(29);
    myList.addLast(12);

    myList.splitMid( subList);
}

错误信息

G:\LinkedList\src\LinkedTest.java:31: 错误:找不到符号。

myList.splitMid(subList);

符号:方法 splitMid(LinkedList)

位置:LinkedList 类型的变量 myList

【问题讨论】:

  • 你的意思是“分成两个子列表”???

标签: java


【解决方案1】:

关于编译错误:

您正在使用LinkedList 的实例来调用您为类UnorderedLinkedList 定义的方法

【讨论】:

    【解决方案2】:

    1.

    G:\LinkedList\src\LinkedList.java:184: error: cannot find symbol subList.count = 0;
    

    尝试删除 subList.count;不必为计数赋值;

    2.

    G:\LinkedList\src\LinkedTest.java:31: error: cannot find symbol.
    
    myList.splitMid(subList);
    

    这样做:

    UnorderedLinkedList<Integer> myList = new UnorderedLinkedList<Integer>();
    

    【讨论】:

    • 请注意,myList 需要输入为UnorderedLinkedList 才能调用splitMid
    • myList.splitMid(subList); 不会编译,因为myList 静态类型为LinkedList,它没有声明splitMidmyList 必须声明为 UnorderedLinkedList
    • 好吧,酷...subList.size() = 0 也无法编译,抱歉。
    • 尝试删除subList.count;不必为计数赋值;
    • 尝试删除subList.count;不必为计数赋值;
    猜你喜欢
    • 1970-01-01
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    相关资源
    最近更新 更多