小编pj2*_*494的帖子

使用 Java 8 和谓词根据 Id 将三个异构列表合并为单个列表

我想根据一个字段将三种不同类型的列表合并到一个列表中。

A(id, val1)
B(id, val2)
C(id, val3)
D(id, val1, val2, val3)
Run Code Online (Sandbox Code Playgroud)
List<A> AList;
List<B> BList;
List<C> CList;
Run Code Online (Sandbox Code Playgroud)
List<D> DList;
Run Code Online (Sandbox Code Playgroud)

使用流和谓词将 AList、BList、CList 合并到 DList。

一种方法是首先使用 n^2 复杂度合并 AList 和 BList 以获得 DList(带有 val1 和 val2);然后循环 DList 以再次使用 n^2 用 CList 填充 val3。所以复杂性将是 n^2 + n^2 = n^2

一季度。有没有更好的方法来提高复杂性?Q2。我想使用 Predicate 和 Stream 来解决这个问题,所以使代码可读性强。

java collections arraylist java-8 java-stream

0
推荐指数
1
解决办法
71
查看次数

标签 统计

arraylist ×1

collections ×1

java ×1

java-8 ×1

java-stream ×1