我有list1
和list2
如下
List<String> list1 = List.of("DX4555", "DY4897", "FG4333", "IH09992");
List<String> list2 = List.of("DX4555", "DY4897", "FG4333", "IH09992", "LJ48833", "YTR3888");
我想要实现的是有一个列表,它只包含list2中的元素,这些元素不在list1中,并且是唯一的,即["LJ48833","YTR3888"]
我想用Java流来实现这个
我试过使用stream().distinct()
,但是不起作用。
1条答案
按热度按时间ecbunoof1#
stream.distinct()只允许你丢弃那些在同一个集合中多次出现的元素,或者当它们被迭代时。
我建议使用apache commons中的ListUtils.subtract,但你也可以使用streams,像这样:
请注意,这是一个
O(n^2)
算法,因为List.contains是线性的。如果列表很大,应该用集合替换它们以提高效率。