針對list中的對象數據的一些簡單處理

一    首先創建一個實體類(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);
  }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。