Created
November 8, 2019 04:42
-
-
Save upangka/7ecb39ccef56ad265875a8695f24c76c to your computer and use it in GitHub Desktop.
交集
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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