List<int[]> bigList = new ArrayList<int[]>();
List<int[]> smallList = new ArrayList<int[]>();
我需要生成一个类型为int []的List,其中包含列表中的公共数组。(值应该相等,不要使用contains())
如何在java流中高效地完成?
答案 0 :(得分:4)
如果它真的必须是一个流解决方案,那么就是一个:
standardUserDefaults
但是通过执行bigList.size()×smallList.size()操作并不是真正有效。因此,强烈建议不要动态地执行所有操作,而是采用中间NSUserDefaults *userDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"MySuiteName"];
存储:
List<int[]> intersection=bigList.stream().map(IntBuffer::wrap)
.filter(b->smallList.stream().map(IntBuffer::wrap).anyMatch(b::equals))
.map(IntBuffer::array)
.collect(Collectors.toList());
请注意,您不应将Set
用于设置操作。未明确指定源和结果排序的语义以及如何处理源列表中的重复项。