我想根据一个字段将三种不同类型的列表合并到一个列表中。
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 来解决这个问题,所以使代码可读性强。