Java 中的连接列表

Rashmi Patidar 2023年10月12日
  1. 在 Java 8 中使用 cacat() 方法进行列表连接
  2. 在 Java 8 中使用 Stream.of() 方法进行列表连接
Java 中的连接列表

可以动态增加的有序元素集合称为 List 集合。它被表示为一个 node 元素,每个节点都包含一个到下一个节点和元素的 reference。我们可以对列表集合执行的操作包括使用索引的元素遍历、插入、更新和删除。

Java 提供了一个 List 接口,该接口为其功能提供了各种方法。列表的多种实现包括 ArrayListLinkedListSortedList。列表的不同属性可以:

  • 成为列表中的重复值。
  • 存储空元素。
  • 动态增长,与大小确定的数组不同。

下面的代码说明了如何创建 Java 连接列表:

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

public class ListConcatenation {
  public static void main(String[] args) {
    List<String> birds_list =
        Stream.of("pigeon", "crow", "squirrel").collect(Collectors.toList()); // Java 8
    List<String> animal_list = List.of("cat", "dog", "rabbit"); // Java 9

    System.out.println("Way 1");
    List<String> stringArrayList = new ArrayList<String>(); // Java7
    stringArrayList.addAll(birds_list);
    stringArrayList.addAll(animal_list);
    System.out.println(stringArrayList);

    System.out.println("Way 2");
    List<String> newList =
        Stream.concat(birds_list.stream(), animal_list.stream()).collect(Collectors.toList());
    System.out.println(newList);

    System.out.println("Way 3");
    List<String> newList2 =
        Stream.of(birds_list, animal_list).flatMap(Collection::stream).collect(Collectors.toList());
    System.out.println(newList2);
  }
}

在上面的代码块中,前两行初始化了我们想要连接的列表。

列表初始化的第一种方式是在声明本身时赋予元素。因此,根据 Java 8 方法,使用 Stream 接口。流充当数据源的包装器,并提供操作和处理数据的方法。of 静态方法接受并创建所提供元素的顺序流作为参数,并返回元素流。我们执行的操作链在 Java 8 中。collect 方法是一个终端操作,它收集归约后提供的 stream

初始化列表的另一种方法是使用 Java 9 版本。它提供了一种使用创建不可变列表的 List.of 静态工厂方法来初始化列表的便捷方法。

最后,传统上使用 Java 7 版本初始化组合的 List 对象。使用 newList 实例调用 addAll() 方法。该方法将指定的集合附加到其末尾标识的集合。当附加列表成功时,它返回 true。当传递的列表集合为空时,该方法可以抛出 NullPointerException

组合列表实例现在包含 birds_list 集合。类似地,animal_list 实例被添加到 stringArrayList。最后,在打印列表后,它会创建一个一个接一个附加的顺序集合。

下面是代码块的控制台输出:

Way 1
[pigeon, crow, squirrel, cat, dog, rabbit]
Way 2
[pigeon, crow, squirrel, cat, dog, rabbit]
Way 3
[pigeon, crow, squirrel, cat, dog, rabbit]

在 Java 8 中使用 cacat() 方法进行列表连接

图示使用相同的代码块来显示 concat() 方法——它在 Stream 接口中是静态的。当终端操作应用于函数时,它被视为中间操作或延迟初始化。concat() 方法采用两个要连接的流。它从我们作为参数传递的两个流中返回组合列表。通过这个方法,collect 函数被调用以将流转换为所需的格式。该函数将收集器作为参数,在我们的例子中,传递 Collectors.toList() 函数以减少 List 类型的流。

输出将类似于第一个代码块,并在上面的控制台日志中打印在 Way 2 语句下。

在 Java 8 中使用 Stream.of() 方法进行列表连接

如上所述,ofStream 接口中的一个静态方法,它接受元素。所以这些元素可以是原始数据类型或集合类。鸟类和动物的集合作为参数传递。现在,flatMap 方法在调用链中被调用,其用途是对传递的流进行处理和转换。

flatMap 方法采用 Function 作为其参数。该方法对元素应用变换并展平结果。在这种情况下,传递 Collection::stream 以转换单个流中的元素,该流在处理后返回。现在使用 collect 方法收集流。

输出与上面的控制台块相同,标题为 Way 3

作者: Rashmi Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

相关文章 - Java List