使用jdk8 优化以下代码 List<Map<String,Long>> list = new ArrayList<>(); Map<String,Long> map = new HashMap<>(); map.put("time1",1L); map.put("time2",1L); Map<String,Long> map2 = new HashMap<>(); map2.put("time1",3L); map2.put("time2",3L); list.add(map); list.add(map2); Long ttt = 4L; Map<String,Long> bbb = null; Long titt = null; for (Map<String,Long> map1: list) { Long ccc = map.get("time1"); if (ccc<=ttt){ Long mmmmmtitt = ttt-ccc; if (titt==null||mmmmmtitt<titt){ bbb=map1; } } } System.out.println(bbb);
时间: 2024-02-14 12:32:19 浏览: 70
openjdk8 源代码
3星 · 编辑精心推荐
下面是使用 JDK 8 优化后的代码:
Map<String, Long> bbb = list.stream()
.filter(map1 -> map1.get("time1") <= ttt)
.min(Comparator.comparingLong(map1 -> ttt - map1.get("time1")))
.orElse(null);
System.out.println(bbb);
使用 stream API 可以简化代码,首先使用 filter() 方法过滤出符合条件(time1 <= ttt)的 map,然后使用 min() 方法找到 time1 差值最小的 map,最后使用 orElse() 方法获取结果(如果不存在这样的 map,则返回 null)。
阅读全文