如何在java中从头开始创建addAll()或addRange()方法?

我正在尝试做一个链接列表,我明确要求创建一个链接列表和一些派生类型,比如队列和堆栈,这只是一些大学作业,而且我意识到如何创建一个节点类和链表类,但我努力在这个链表类中创建addAll()方法,这就是我所拥有的。

如果我必须打赌,我说是收藏c一个,但是,然后,我试图添加的东西列表,为了将他的内容传递到新列表,obiusly没有准备好,并且obiusly不起作用。

你能告诉我如何通过某种“原始列表”以便将它们的数据传递到新列表中?

(我知道我必须使用一些for(对象),但我没有通过参数传递一些数据,这将是放在那里的正确参数?)

public boolean addAll(Collection c) {
        for (int i = 0; i < (this.listaNodos.size()); i++) {

            //for (T someT : c){
            //  Node newNodo = new Node(someT);
            //}

            //i know the one down there is not gonna do anything, because
            //i'm not accesing the data, but one problem at a time would ya ;)
            Node newNodo = new Node(someT);
            Node actualNodo = this;
            boolean processFinished = false;

            try{
                if(index >= this.listaNodos.size() || index < 0){
                    throw new IndexOutOfBoundsException();
                }


                do{
                    if(index == actualNodo.getIndex())
                    {
                        actualNodo.setData(someT);
                        processFinished = true;
                        return true;
                    }
                    else
                    {
                        actualNodo = actualNodo.nextNode;
                    }
                }while(!processFinished);
                return false;
            }catch(IndexOutOfBoundsException ex)
            {
                throw ex;
            }
        }
        return false;
    }

你能告诉我如何解决它,使其工作?

任何澄清,建设性评论或问题的要求也会大大降低。

提前致谢


我假设你已经有一个add()方法的某种权利? 如果是这样,你可以检查c每个元素,并使用add方法添加它:

public boolean addAll(Collection<T> c) {
    boolean changed = false;
    for (T t:c) {
        changed |= this.add(t);
    } 
    return changed;
}

我假设返回的布尔值表示该列表是否已更改,这是如何在Collection合同中定义的:https://docs.oracle.com/javase/7/docs/api/java/util/Collection.html #addAll(java.util.Collection中)。

你也添加了一个通用类型,所以我添加了一个。 我假设你的类定义看起来像这样?

public class MyLinkedList<T>
链接地址: http://www.djcxy.com/p/73921.html

上一篇: How to make an addAll() or addRange() method from scratch in java?

下一篇: extra storage merge sort