阅读量:0
在Java中,List的stream方法可以通过映射操作来对其中的元素进行转换或处理。常用的映射操作有以下几种:
- map:将列表中的元素按照指定的规则进行映射转换,返回一个新的Stream。
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5); List<Integer> result = list.stream().map(x -> x * 2).collect(Collectors.toList()); // result: [2, 4, 6, 8, 10]
- flatMap:将列表中的元素按照指定的规则进行映射转换,并将各个元素的Stream合并为一个新的Stream。
List<List<Integer>> lists = Arrays.asList(Arrays.asList(1, 2), Arrays.asList(3, 4), Arrays.asList(5, 6)); List<Integer> result = lists.stream().flatMap(Collection::stream).collect(Collectors.toList()); // result: [1, 2, 3, 4, 5, 6]
- mapToInt、mapToLong、mapToDouble:将列表中的元素映射为int、long、double类型的值。
List<String> list = Arrays.asList("1", "2", "3", "4", "5"); int sum = list.stream().mapToInt(Integer::parseInt).sum(); // sum: 15
- mapToObj:将int、long、double类型的值映射为对象类型的值。
int[] arr = {1, 2, 3, 4, 5}; List<Integer> list = Arrays.stream(arr).mapToObj(Integer::valueOf).collect(Collectors.toList()); // list: [1, 2, 3, 4, 5]