【问题标题】:combine items of list组合列表项
【发布时间】:2012-04-28 22:57:29
【问题描述】:

您好,我有一个列表,可以说这些项目 {30 50 5 60 90 5 80} 我想做的例如是将第 3 个和第 4 个元素组合在一起并具有 {30 50 65 90 5 80}

你能告诉我该怎么做吗?我使用的是java链表类。

【问题讨论】:

  • 这是作业吗?如果是这样,你应该这样标记它
  • 不是,我正在尝试用列表制作一些东西,但我不记得如何合并列表中的两个元素
  • 我去年在大学里研究过链表,现在我似乎不太容易记住它们,我所做的就是制作列表并且我知道如何从中删除项目跨度>
  • 我实际上并不感到困惑(无论多么难以掌握),我只是不记得我大学最后一年的一些事情,尽管我做了研究并在 Java 中找到了文档我无法理解如何以那种特别的方式使用链接列表,所以我冒昧地使用了一个现有的网站来提供给定问题的答案,因为我已经完成了我的研究,而不是提出一个像“如何使用列表”我只问如何做我需要做的具体事情

标签: java linked-list


【解决方案1】:
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]
    }
}

输出是:

[30, 50, 5, 60, 90, 5, 80]
[30, 50, 65, 90, 5, 80]

您需要检查空值以避免NullPointerException

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        在当前链接中添加两个值,删除这两个链接并在其位置添加一个新值。 API 位于:http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html 使用 removeadd 方法。

        【讨论】:

          【解决方案5】:

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

          http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html

          【讨论】:

            猜你喜欢
            • 2014-05-23
            • 1970-01-01
            • 2012-05-17
            • 2013-08-09
            • 1970-01-01
            • 2020-07-14
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多