迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

如何在 Java 中连接两个列表

作者:迹忆客 最近更新:2023/10/17 浏览次数:

通常,在执行任何程序之前,我们必须将几个列表合并成一个。有不少不同的方法来合并两个列表或将它们合并成更大的列表。我们将在本文中查看两种在 Java 中合并两个列表的快速方法,你可以进一步扩展这两种方法来合并或执行任何数量的列表。Array-List 或基于 Java 的链接列表。

合并许多集合的一种方法是使用 java.util collection 类的 addAll() 函数,它可以帮助你将一个列表的内容添加到另一个列表。通过使用 addAll() 函数,你可以将内容分配给任意多的列表,这也是合并许多列表的最简单方法。

另外,为了更好的理解,还解释了一些其他方法。

  • 使用 Stream
  • 使用参数化构造函数
  • 使用预定列表和 addAll()

在 Java 中使用流 Stream 来连接两个列表

Java 8 版中的流让我们可以只用一句话解决大部分的问题,同时,代码看起来也很干净。一个项目的排列,支撑着不同的策略,而这些策略可以通过管道来创建理想的结果。在下面提到的解决方案中,lst.stream() 将列表转换为 Stream 数据类型,然后 Stream.concat(Strem1,Stream2) 将两个不同的 Stream 对象连接起来,然后 Stream.collect(collectors.toList)Stream 对象转换为列表对象。

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Abc {
    public static void main(String[] args) {
        List<String> list1,list2;
        list1=new ArrayList<String>();
        list2=new ArrayList<String>();
        list1.add("1");
        list1.add("2");
        list1.add("3");
        list1.add("4");
        list2.add("5");
        list2.add("6");
        list2.add("7");
        list2.add("8");
        for(int i=0;i<list1.size();i++)
        {
            System.out.print(list1.get(i)+" ");
        }
        System.out.println();
        for(int i=0;i<list2.size();i++)
        {
            System.out.print(list2.get(i)+" ");
        }

        System.out.println();
        //first Solution
        List<String> resultList1 = Stream.concat(list1.stream(), list2.stream()).collect(Collectors.toList());
        //first Solution Prints
        System.out.println("first Solution Prints");
        for(int i=0;i<resultList1.size();i++)
        {
            System.out.print(resultList1.get(i)+" ");
        }

        System.out.println();
    }
}

在 Java 中使用参数化构造函数 (parameterize constructor) 来连接两个列表

List<String> newList = new ArrayList<String>(listOne); 将通过调用参数化构造函数创建一个列表,该构造函数将给定的列表复制到新的列表对象中,然后 newList.addAll(listTwo); 将一个列表(list2)追加到新声明的列表中。

import java.util.ArrayList;
import java.util.List;

public class Abc {
    public static void main(String[] args) {
        List<String> list1,list2;
        list1=new ArrayList<String>();
        list2=new ArrayList<String>();
        list1.add("1");
        list1.add("2");
        list1.add("3");
        list1.add("4");
        list2.add("5");
        list2.add("6");
        list2.add("7");
        list2.add("8");
        for(int i=0;i<list1.size();i++)
        {
            System.out.print(list1.get(i)+" ");
        }
        System.out.println();
        for(int i=0;i<list2.size();i++)
        {
            System.out.print(list2.get(i)+" ");
        }
        System.out.println();    
        // Second Solution
        List<String> resultList2 = new ArrayList<String>(list1);
        resultList2.addAll(list2);
        //Second Solution Prints
        System.out.println("Second Solution Prints");
        for(int i=0;i<resultList2.size();i++)
        {
            System.out.print(resultList2.get(i)+" ");
        }
        System.out.println();
    }
}

在 Java 中使用 predeclared new array 来连接两个列表

resultList3 是预定义的,或者可以这样做 List<String> resultList3; 在声明了 n 个结果列表后,那么 newList = new ArrayList<String>(list1) 将通过将 list1 的元素复制到新数组中来初始化新数组。(list).addAll(list2);list2 的元素追加到 list1 中。

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class Abc {
    public static void main(String[] args) {
        List<String> list1,list2;
        list1=new ArrayList<String>();
        list2=new ArrayList<String>();
        list1.add("1");
        list1.add("2");
        list1.add("3");
        list1.add("4");
        list2.add("5");
        list2.add("6");
        list2.add("7");
        list2.add("8");
        for(int i=0;i<list1.size();i++)
        {
            System.out.print(list1.get(i)+" ");
        }
        System.out.println();
        for(int i=0;i<list2.size();i++)
        {
            System.out.print(list2.get(i)+" ");
        }
        System.out.println();
        //third Solution 
        List<String> resultList3;
        (resultList3 = new ArrayList<String>(list1)).addAll(list2);
        //Third Solution Prints
        System.out.println("Third Solution Prints");
        for(int i=0;i<resultList3.size();i++)
        {
            System.out.print(resultList3.get(i)+" ");
        }
        System.out.println();
    }
}

上一篇:如何在 Java 中创建一个新的列表

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 Java 中创建一个新的列表

发布时间:2023/10/17 浏览次数:84 分类:Java

本文介绍了在 Java 中创建新列表的方法本教程将讨论了在 Java 中创建不同类型列表的方法。Java 中的列表 List 是一个接口,由 ArrayList、LinkedList、Vector 和 Stack 实现。

如何在 Java 中打印列表

发布时间:2023/10/17 浏览次数:73 分类:Java

它通过实例讨论了如何在 Java 中打印出列表的每一个元素。我们将介绍一些可以打印出 Java 中所有列表项的方法。在示例中,我们将使用模型类来演示如何创建模型对象列表,然后在其中打印元

在 Java 中初始化字符串列表

发布时间:2023/10/17 浏览次数:69 分类:Java

在本教程中,我们将看到在 Java 中初始化字符串列表的各种方法。由于列表是一个接口,我们不能直接将其实例化,我们可以使用 ArrayList,LinkedList 和 Vector 来实例化一个列表。

Java 中遍历列表

发布时间:2023/10/16 浏览次数:113 分类:Java

这篇文章将要遍历 Java 中列表的所有元素。本教程介绍了如何遍历 Java 中的列表,并列出了一些示例代码来理解该主题。列表是 Java 中的一个接口,具有多个实现类,例如 ArrayList,LinkedList 等。

在 Java 中遍历链接列表

发布时间:2023/10/16 浏览次数:82 分类:Java

本文介绍如何遍历 Java 中的链表链表是数据元素的线性有序集合。元素的排列在存储器中无处不在或随机的位置。

Java 中的连接列表

发布时间:2023/10/16 浏览次数:103 分类:Java

本文介绍了 Java 中的列表连接。可以动态增加的有序元素集合称为 List 集合。它被表示为一个 node 元素,每个节点都包含一个到下一个节点和元素的 reference。我们可以对列表集合执行的操作包

在 Java 中对列表进行排序

发布时间:2023/10/16 浏览次数:169 分类:Java

列表是一个有序集合,可以以任何顺序存储项目。我们可以将传统算法应用于列表。本教程将演示如何使用不同的函数在 Java 中对列表进行排序。

在 Java 中创建并发列表

发布时间:2023/10/16 浏览次数:127 分类:Java

本文介绍如何在 Java 中制作并发列表。并发是在并行运行中运行程序或函数的过程。当多个线程在同一个方法上工作时,它可以减少时间并增加吞吐量。

Java 中排序链表

发布时间:2023/10/16 浏览次数:126 分类:Java

本文介绍如何在 Java 中对链表进行排序。Java 中的链表是一种数据结构或集合,允许用户在内存中创建动态数组。该列表不包含任何预定义的大小。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便