java stream 两个list 匹配 赋值
时间: 2023-05-03 17:05:57 浏览: 134
两个list比较 取不同的对象
4星 · 用户满意度95%
Java Stream是Java 8推出的一种新的数据处理技术,其主要有两个作用:一是将集合中的数据进行过滤、排序、映射等操作,从而得到需要的数据;二是将对数据的处理并行化,提高处理效率。对于Java Stream进行匹配赋值,可以通过map和filter等方法实现。
首先将两个list通过流的方式转化为Map结构,其中一个list为key,一个list为value。然后通过filter方法筛选出存在于key和value两个Map中的元素,再通过map方法获取相应的value值,最后得到一个新的list。
具体实现过程如下:
List<String> list1 = Arrays.asList("A", "B", "C");
List<Integer> list2 = Arrays.asList(1, 2, 3);
Map<String, Integer> map = IntStream.range(0, list1.size()).boxed()
.collect(Collectors.toMap(list1::get, list2::get));
List<String> resultList = list1.stream()
.filter(map::containsKey)
.map(map::get)
.collect(Collectors.toList ());
上面的代码先将list1和list2两个list以key-value的形式存入map中,然后通过stream流对list1进行筛选,获取包含在map中的元素的value值,最后以新的list返回。
通过Java Stream对两个list进行匹配赋值可以极大地简化代码,同时也可以提高代码的可读性和执行效率。
阅读全文