java 8 lamda stream操作
阿新 • • 發佈:2021-12-16
model屬性:
public class Person { private Integer id; private String name; private String sex; private Integer age; public Person(Integer id,String name,String sex,Integer age){ this.id = id; this.name = name; this.sex = sex; this.age = age; }View Codepublic Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex() { return sex; }public void setSex(String sex) { this.sex = sex; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
物件陣列直接初始化:
Person persons[] = new Person[]{ new Person(1, "張三", "1", 25), newPerson(2, "李四", "1", 35), new Person(3, "安紅", "2", 22), new Person(4, "小王", "2", 28) }; List<Person> list = Arrays.asList(persons);
list以性別分組:
Map<String,List<Person>> map = list.stream().collect(Collectors.groupingBy(Person::getSex));
分組後的key排序:
LinkedHashMap<String,List<Person>> result = new LinkedHashMap<>(); //分組後的key排序 map.entrySet().stream() .sorted(Map.Entry.<String,List<Person>>comparingByKey().reversed())//reversed()方法倒序 不加為升序 //map無序 so重新裝進LinkedHashMap .forEachOrdered(m -> result.put(m.getKey(), m.getValue())); result.forEach((key,value)->{ System.out.println(key); value.forEach(p -> System.out.println(p.getName())); });