Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建已排序的链表类_Java_Linked List - Fatal编程技术网

Java 创建已排序的链表类

Java 创建已排序的链表类,java,linked-list,Java,Linked List,我试图创建一个SortedLinkedList类来扩展LinkedList。此类应将项目添加到SortedLinkedList并对其进行排序 我试图重写布尔添加(E obj)方法,以便按排序顺序添加项 在Stackoverflow问题上,我发现了以下覆盖add(E obj)的方法: public boolean add(E obj){ int指数=0; 对于(;index不要考虑使用迭代器对列表进行排序。考虑使用迭代器将新元素插入已排序的列表中 您的列表将开始为空。当您添加第一个元素时,您将有一

我试图创建一个SortedLinkedList类来扩展LinkedList。此类应将项目添加到SortedLinkedList并对其进行排序

我试图重写布尔添加(E obj)方法,以便按排序顺序添加项

在Stackoverflow问题上,我发现了以下覆盖add(E obj)的方法:

public boolean add(E obj){
int指数=0;

对于(;index不要考虑使用迭代器对列表进行排序。考虑使用迭代器将新元素插入已排序的列表中

您的列表将开始为空。当您添加第一个元素时,您将有一个包含一个元素的列表,根据定义,该列表已排序。如果您确保始终在正确的位置添加后续元素,则列表将保持排序

这正是使用
get
的代码所做的,但是正如您正确地说的,这对于链表来说是无效的。您需要做的是使用迭代器重现该算法


提示:列表迭代器允许您。

不要考虑使用迭代器对列表进行排序。请考虑使用迭代器将新元素插入已排序的列表中

您的列表将开始为空。当您添加第一个元素时,您将有一个包含一个元素的列表,根据定义,该列表已排序。如果您确保始终在正确的位置添加后续元素,则列表将保持排序

这正是使用
get
的代码所做的,但是正如您正确地说的,这对于链表来说是无效的。您需要做的是使用迭代器重现该算法


提示:列表迭代器让您可以。

您到底在做什么?使用列表迭代器而不是get(index)方法对列表进行排序。这在您的帖子中很明显。@matt表示您在尝试这样做时遇到了什么问题?您到底在做什么?使用列表迭代器而不是get(index)对列表进行排序方法。这在你的帖子中很明显。@matt的意思是你在尝试这样做时面临什么问题?啊,我明白你的意思。问题是我不能在正确的位置插入元素。所以如果我举一个简单的例子,比如:list.add(5)和list.add(3),那么据我所知,我应该将5存储在某个地方,然后将3与之比较?没关系,我已经解决了这个问题。谢谢你的提示,它很有用啊,我明白你的意思。问题是我不能在正确的位置插入元素。所以,如果我举一个简单的例子,比如:list.add(5)和list.add(3),那么据我所知,我应该将5存储在某个地方,然后将3与之比较?没关系,我已经解决了这个问题。谢谢你的提示,它很有用
public boolean add(E obj) {
    int index = 0;
    for( ; index<size() ; index++){
        E object= get(index);

        if(obj.compareTo(object) < 0){
            break;
        }
    }

    add(index, obj);
    return true;
};
public boolean add(E obj)
{   
    add(size(), obj);
    ListIterator<E> iterator = listIterator();

    while(iterator.hasNext())
    {
        E object = iterator.next();
        if(obj.compareTo(object)<0)
        {
            //do something;
        }
    }
    return true;
}