Skip to content

Instantly share code, notes, and snippets.

@upangka
Created November 8, 2019 04:42
Show Gist options
  • Save upangka/7ecb39ccef56ad265875a8695f24c76c to your computer and use it in GitHub Desktop.
Save upangka/7ecb39ccef56ad265875a8695f24c76c to your computer and use it in GitHub Desktop.
交集
package org.caucoder.mylist;
public class Entity {
private String fname;
private String lname;
public Entity(String fname, String lname) {
this.fname = fname;
this.lname = lname;
}
public String getFname() {
return fname;
}
public void setFname(String fname) {
this.fname = fname;
}
public String getLname() {
return lname;
}
public void setLname(String lname) {
this.lname = lname;
}
}
package org.caucoder.mylist;
import java.util.*;
import java.util.stream.Collectors;
/**
* list 转set并操作
*/
public class GetSpecificField {
public static void main(String[] args) {
List<Entity> enList = new ArrayList<>(Arrays.asList(new Entity("huang","zhuangzhuang"),
new Entity("Q10","Viking")));
List<Entity> cnList = new ArrayList<>(Arrays.asList(new Entity("Zhang","qiang"),
new Entity("Q10","Viking")));
Set<String> fnameEnSet = enList.stream().map(Entity::getFname).collect(Collectors.toSet());
Set<String> fnameCnSet = cnList.stream().map(Entity::getFname).collect(Collectors.toSet());
System.out.println("fnameEnList: "+fnameEnSet);
System.out.println("fnameCnList: "+fnameCnSet);
System.out.println("=============================");
Set<String> commonSet = new HashSet<>(fnameCnSet);
commonSet.retainAll(fnameEnSet);
System.out.println("交集: "+commonSet);
System.out.println("fnameEnList: "+fnameEnSet);
System.out.println("fnameCnList: "+fnameCnSet);
System.out.println("=============================");
fnameCnSet.removeAll(commonSet);
fnameEnSet.removeAll(commonSet);
System.out.println("fnameEnList 除去交集: "+fnameEnSet);
System.out.println("fnameCnList 除去交集: "+fnameCnSet);
System.out.println("=============================");
System.out.println("如果set为null");
fnameCnSet.removeAll(null);
fnameEnSet.removeAll(null);
System.out.println("fnameEnList 除去交集null: "+fnameEnSet);
System.out.println("fnameCnList 除去交集null: "+fnameCnSet);
}
}
/**
fnameEnList: [Q10, huang]
fnameCnList: [Q10, Zhang]
=============================
交集: [Q10]
fnameEnList: [Q10, huang]
fnameCnList: [Q10, Zhang]
=============================
fnameEnList 除去交集: [huang]
fnameCnList 除去交集: [Zhang]
=============================
如果set为null
Exception in thread "main" java.lang.NullPointerException
at java.util.Objects.requireNonNull(Objects.java:203)
at java.util.AbstractSet.removeAll(AbstractSet.java:169)
at org.caucoder.mylist.GetSpecificField.main(GetSpecificField.java:33)
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment