Java8集合交集操作
1.用到的實體類
User.java
public class User {
private Integer userId;
private String orgId;
private String name;
private String phone;
public User() {
super();
}
public User(Integer userId, String orgId, String name, String phone) {
super();
this.userId = userId;
this.orgId = orgId;
this.name = name;
this.phone = phone;
}
public Integer getUserId() {
return userId;
}
public void setUserId(Integer userId) {
this.userId = userId;
}
public String getOrgId() {
return orgId;
}
public void setOrgId(String orgId) {
this.orgId = orgId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
@Override
public String toString() {
return "User [userId=" + userId + ", orgId=" + orgId + ", name=" + name
+ ", phone=" + phone + "]";
}
}
2.操作集合的類
Test.java
public class Test{
public static void main(String[] args) {
//第一個arrayList
List<User> userList=new ArrayList<>();
//第二個arrayList
ArrayList<String> serviceCodes=new ArrayList<>();
int i=0;
String prefix_orgid="10086";
for(int j=0;j<10;j++){
userList.add(new User(i,prefix_orgid+i,"張"+i,"10086"));
i++;
}
System.out.println("userList:");
for(User user:userList){
System.out.println(user.toString());
}
i=0;
for(int j=0;j<5;j++){
serviceCodes.add(prefix_orgid+i);
i++;
}
System.out.println("serviceCodes:");
for(String s:serviceCodes){
System.out.println(s);
}
/**
* JDK8集合新特性,取交集
* filter跟foreach類似,如果原來是List<T>,取的就是T對象
* 箭頭後面跟的是過濾的條件
* 過濾好了之後需要把流轉回集合
*/
List<User> filterList=userList.stream()
.filter(user -> serviceCodes.contains(user.getOrgId()))
.collect(Collectors.toList());
System.out.println("JDK8集合過濾之後:");
filterList.forEach(item->{
System.out.println(item.toString());
});
}
}
運行截圖:
關注公衆號,獲取更多資源
每天進步一點點,開心也多一點點