Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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,嗨,我有一个列表,上面有这些项目{30 50 5 60 90 5 80}我想做的是,例如,将第三个和第四个元素组合在一起,得到{30 50 65 90 5 80} 你能告诉我怎么做吗?我正在使用java链表类。阅读LinkedList的API文档。没有“combine”方法,但是有一个方法可以删除给定索引处的元素,还有一个方法可以在列表中的任何位置插入元素 我会循环浏览您的链接列表(从头部节点开始)。我猜每个LinkedList对象上都有一个nextNode属性,允许迭代器工作。当您到达索引2(

嗨,我有一个列表,上面有这些项目{30 50 5 60 90 5 80}我想做的是,例如,将第三个和第四个元素组合在一起,得到{30 50 65 90 5 80}


你能告诉我怎么做吗?我正在使用java链表类。

阅读LinkedList的API文档。没有“combine”方法,但是有一个方法可以删除给定索引处的元素,还有一个方法可以在列表中的任何位置插入元素


我会循环浏览您的链接列表(从头部节点开始)。我猜每个LinkedList对象上都有一个nextNode属性,允许迭代器工作。当您到达索引2(值为5)时,找到索引2的下一个节点(值为60),并将该值添加到索引2(值为5表示为65)。然后找到索引3的nextNode(值为60),它指向值为90的节点(称为newNextNode),并将索引2的nextNode属性(值为5)重置为该节点

在当前链接中添加这两个值,删除这两个链接并在其位置添加一个新链接。API位于:使用删除和添加方法。

链表不提供对列表执行操作的方法,它只管理列表。对您来说,唯一的方法是从所述位置检索元素并将它们相加,然后从列表中删除所述元素,然后使用索引插入新项

public class Main {
    public static void main(String[] args) {
        List<Integer> list = new LinkedList<>();
        list.add(30);
        list.add(50);
        list.add(5);
        list.add(60);
        list.add(90);
        list.add(5);
        list.add(80);
        System.out.println(list);
        combine(list, 2, 3);
        System.out.println(list);
    }
    public static void combine(List<Integer> list, int indexA, int indexB) {
        Integer a = list.get(indexA);
        Integer b = list.get(indexB);
        list.remove(indexB); // [30, 50, 5, 90, 5, 80]
        list.add(indexA, a + b); // [30, 50, 65, 5, 90, 5, 80]
        list.remove(indexB); // [30, 50, 65, 90, 5, 80]
    }
}

您需要检查null值以避免
NullPointerException

这是家庭作业吗?如果是这样的话,你应该把它贴上suchit不是的标签,我正在尝试制作一个列表,但我不记得如何在列表中合并两个元素。我去年在大学学习了链表,现在我似乎不太容易记住它们,我所做的是制作列表,我知道如何从列表中删除项目。请参见:。可能让你困惑的是,我其实并不困惑(不管它有多么难理解),我只是记不起大学最后一年的一些事情,尽管我做了研究,在Java网站上找到了文档,但我无法理解如何以这种方式使用链表,因此,我冒昧地使用了一个现有的网站,为给定的问题提供答案,因为我已经做了研究,而不是提出一个真正的一般性问题,如“如何使用列表”,我只问如何做我需要做的具体事情
[30, 50, 5, 60, 90, 5, 80]
[30, 50, 65, 90, 5, 80]