Java 中的连接列表
可以动态增加的有序元素集合称为 List
集合。它被表示为一个 node
元素,每个节点都包含一个到下一个节点和元素的 reference
。我们可以对列表集合执行的操作包括使用索引的元素遍历、插入、更新和删除。
Java 提供了一个 List
接口,该接口为其功能提供了各种方法。列表的多种实现包括 ArrayList
、LinkedList
和 SortedList
。列表的不同属性可以:
- 成为列表中的重复值。
- 存储空元素。
- 动态增长,与大小确定的数组不同。
下面的代码说明了如何创建 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()
方法进行列表连接
如上所述,of
是 Stream
接口中的一个静态方法,它接受元素。所以这些元素可以是原始
数据类型或集合
类。鸟类和动物的集合作为参数传递。现在,flatMap
方法在调用链中被调用,其用途是对传递的流进行处理和转换。
flatMap
方法采用 Function
作为其参数。该方法对元素应用变换并展平结果。在这种情况下,传递 Collection::stream
以转换单个流中的元素,该流在处理后返回。现在使用 collect
方法收集流。
输出与上面的控制台块相同,标题为 Way 3
。
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