Skip to content

Instantly share code, notes, and snippets.

@upangka
Created November 8, 2019 04:51
Show Gist options
  • Save upangka/237fb3e70672f59395156dafcb9b88b4 to your computer and use it in GitHub Desktop.
Save upangka/237fb3e70672f59395156dafcb9b88b4 to your computer and use it in GitHub Desktop.
交集处理null,empty的情况
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