import java.util.*; import java.util.function.Consumer; /* a) 打印谷天洛的分数 b) 打印最高分 c) 分别以60分和70分为及格线,打印及格的人的名字(组合型消费) */ public class Test16 { public static void main(String[] args) { HashMap<String, Integer> stu = new HashMap<>(); stu.put("岑小村", 59); stu.put("谷天洛", 82); stu.put("渣渣辉", 98); stu.put("蓝小月", 65); stu.put("皮几万", 70); doJob(stu,a->System.out.println(a.get("谷天洛"))); doJob(stu,a->{ Collection<Integer> values = a.values(); ArrayList<Integer> value = new ArrayList<>(values);//用来保存值 Collections.sort(value); System.out.println(value.get(value.size()-1)); }); doJob(stu,a->{ Set<Map.Entry<String, Integer>> entries = a.entrySet(); System.out.println("60分以上的同学: "); for (Map.Entry en : entries) { if ((int)en.getValue() >= 60) { System.out.println(en.getKey()); } } },a->{ Set<String> strings = a.keySet(); Iterator<String> iterator = strings.iterator(); System.out.println("70分以上的同学为"); while (iterator.hasNext()) { if (a.get(iterator.next()) >= 70) { System.out.println(iterator.next()); } } }); } public static <T> void doJob(T t, Consumer<T> consumer) { consumer.accept(t); } public static <T> void doJob(T t, Consumer<T> consumer1, Consumer<T> consumer2) { consumer1.andThen(consumer2).accept(t); } }
打印效果