一 首先創建一個實體類(PersonData ):
package hello;
public class PersonData {
String Id;
String Name;
String Type;
int Age;
public String getId() {
return Id;
}
public void setId(String id) {
Id = id;
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public String getType() {
return Type;
}
public void setType(String type) {
Type = type;
}
public int getAge() {
return Age;
}
public void setAge(int age) {
Age = age;
}
@Override
public String toString() {
return "PersonData [Id=" + Id + ", Name=" + Name + ", Type=" + Type + ", Age=" + Age + "]";
}
}
二 下面就是針對list的一些簡單處理:
package hello;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
public class test {
public static void main(String[] args) {
List<PersonData> list = new ArrayList<PersonData>();
PersonData p1 = new PersonData();
p1.setId("1");
p1.setName("張三");
p1.setType("管理員");
p1.setAge(20);
list.add(p1);
PersonData p2 = new PersonData();
p2.setId("2");
p2.setName("李四");
p2.setType("管理員");
p2.setAge(30);
list.add(p2);
PersonData p3 = new PersonData();
p3.setId("3");
p3.setName("王五");
p3.setType("用戶");
p3.setAge(40);
list.add(p3);
// 跟據某個屬性分組
Map<String, List<PersonData>> collect = list.stream().collect(Collectors.groupingBy(PersonData::getType));
System.out.println(collect);
// 根據某個屬性分組,匯總某個屬性
Map<String, Integer> collect2 = list.stream().collect(Collectors.groupingBy(PersonData::getType, Collectors.summingInt(PersonData::getAge)));
System.out.println(collect2);
// 根據某個屬性添加條件過濾數據,
list = list.stream().filter(u -> !u.getType().equals("訪客")).collect(Collectors.toList());
System.out.println(list);
// 判斷一組對象里面有沒有屬性值是某個值
boolean add = list.stream().anyMatch(m -> "王五".equals(m.getName()));
System.out.println(add);
// 取出一組對象的某個屬性組成一個新集合
List<String> names = list.stream().map(PersonData::getName).collect(Collectors.toList());
System.out.println(names);
}
}