Created
November 8, 2019 04:51
-
-
Save upangka/237fb3e70672f59395156dafcb9b88b4 to your computer and use it in GitHub Desktop.
交集处理null,empty的情况
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为empty"); | |
Set<String> tmp = new HashSet<>(); | |
fnameCnSet.removeAll(tmp); | |
fnameEnSet.removeAll(tmp); | |
System.out.println("fnameEnList 除去交集empty: "+fnameEnSet); | |
System.out.println("fnameCnList 除去交集empty: "+fnameCnSet); | |
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为empty | |
fnameEnList 除去交集empty: [huang] | |
fnameCnList 除去交集empty: [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:39) | |
*/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment