记录一下使用Java Stream流解决部分问题的过程。
- 获取实体类的name属性在nameList集合中的第一个实体类对象。
// 目标nameList
List<String> nameList = new ArrayList<>();
nameList.add("dames");
nameList.add("dames1");
List<TestEntity> list = new ArrayList<>();
list.add(TestEntity.builder().name("dames").build());
list.add(TestEntity.builder().name("dames1").build());
list.add(TestEntity.builder().name("dames2").build());
list.add(TestEntity.builder().name("dames3").build());
// 对象需要用Optional容器接收
Optional<TestEntity> first = list.stream().filter(item -> nameList.contains(item.getName())).findFirst();
- 筛选出map集合中第一个key对应的value,这个key需要满足的是某字符串以它开头。
// 保存k-v映射关系的map
Map<String, String> map = new HashMap<>();
map.put("omada.iot", "iot");
map.put("test", "value2");
map.put("omada", "omada");
// 目标字符串
String prefix = "omada.iot";
// 找到一个符合目标字符串以key开头的对应的value
String firstMatch = map.entrySet().stream()
.filter(entry -> prefix.startsWith(entry.getKey())).findFirst()
// Map.Entry映射为String
.map(Map.Entry::getValue).orElse(null);
- 数据累加。 reduce()方法可以将流元素聚合为单个结果。它接受一个BinaryOperator参数作为累加器。
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
Optional<Integer> sum = numbers.stream().reduce

最低0.47元/天 解锁文章
1841

被折叠的 条评论
为什么被折叠?



