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());
});
}
}
运行截图:
关注公众号,获取更多资源
每天进步一点点,开心也多一点点