如何在 Java 中连接两个列表

Usama Imtiaz 2023年10月12日
  1. 在 Java 中使用流 Stream 来连接两个列表
  2. 在 Java 中使用参数化构造函数 (parameterize constructor) 来连接两个列表
  3. 在 Java 中使用 predeclared new array 来连接两个列表
如何在 Java 中连接两个列表

通常,在执行任何程序之前,我们必须将几个列表合并成一个。有不少不同的方法来合并两个列表或将它们合并成更大的列表。我们将在本文中查看两种在 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 List