使用java集合(包括但不限于List)类可方便地计算两个集合的交集、并集、差集等,以下是详细代码:
import java.util.HashSet;
import java.util.Set;
public class Test {
public static void main(String[] args) {
Set<Integer> result = new HashSet<Integer>();
Set<Integer> set1 = new HashSet<Integer>(){{
add(1);
add(3);
add(5);
}};
Set<Integer> set2 = new HashSet<Integer>(){{
add(1);
add(2);
add(3);
}};
result.clear();
result.addAll(set1);
result.retainAll(set2);
System.out.println("交集:"+result);
result.clear();
result.addAll(set1);
result.removeAll(set2);
System.out.println("差集:"+result);
result.clear();
result.addAll(set1);
result.addAll(set2);
System.out.println("并集:"+result);
}
}
针对题目中关于List的应用,只需要在代码中将输入集合改为list即可
B. java集合求差值和并集!
差集
ArrayList<String> stuList = new ArrayList<String>();
stuList.add("aa");
stuList.add("bb");
stuList.add("cc");
stuList.add("dd");
ArrayList<String> stuList2 = new ArrayList<String>();
stuList2.add("bb");
stuList2.add("cc");
stuList2.add("ee");
stuList2.add("ff");
for (String s : stuList2) {
if (stuList.contains(s)) {
stuList.remove(s);
} else {
stuList.add(s);
}
}
System.out.println(stuList2);
合集
ArrayList stuList = new ArrayList();
stuList.add("aa");
stuList.add("bb");
stuList.add("cc");
stuList.add("dd");
ArrayList stuList2 = new ArrayList();
stuList2.add("bb");
stuList2.add("cc");
stuList2.add("ee");
stuList2.add("ff");
Set set=new HashSet();
for (Object object : stuList) {
set.add(object);
}
for (Object object : stuList2) {
set.add(object);
}
System.out.println(set);
C. 用java编写程序,求集合的并集、交集和差集
publicstaticvoidmain(String[]args){
Integer[]A={1,2,3,4};
Integer[]B={1,3,7,9,11};
List<Integer>listA=Arrays.asList(A);
List<Integer>listB=Arrays.asList(B);
List<Integer>jiaoji=newArrayList<Integer>();
for(Integera:listA){
(listB.contains(a)){
jiaoji.add(a);
}
}
System.out.println(jiaoji);
List<Integer>bingji=newArrayList<Integer>();
for(Integera:listA){
if(!bingji.contains(a)){
bingji.add(a);
}
}
for(Integerb:listB){
if(!bingji.contains(b)){
bingji.add(b);
}
}
System.out.println(bingji);
List<Integer>chaji=newArrayList<Integer>();
for(Integera:listA){
if(!listB.contains(a)){
chaji.add(a);
}
}
System.out.println(chaji);
}
D. java中怎么取两个数组中不相同的数据
public static <T> List<T> compare(T[] t1, T[] t2) {
List<T> list1 = Arrays.asList(t1);
List<T> list2 = new ArrayList<T>();
for (T t : t2) {
if (!list1.contains(t)) {
list2.add(t);
}
}
return list2;
}
compare(new Integer[] { 1, 2, 3 }, new Integer[] {
1, 2, 3, 4 })
E. java 两个list数组 其中一个数组包含另一数组所有值,怎么对比
你想要的是不是下面的操作方式:
Listlist1=newArrayList();
list1.add("1111");
list1.add("2222");
list1.add("3333");
Listlist2=newArrayList();
list2.add("3333");
list2.add("4444");
list2.add("5555");
//并集
//list1.addAll(list2);
//交集
//list1.retainAll(list2);
//差集回
//list1.removeAll(list2);
//无重复答并集
list2.removeAll(list1);
list1.addAll(list2);
F. java中如何取得两个List集合中不相等的值
packagep1;
importjava.util.Arrays;
importjava.util.List;
publicclassLab9
{
publicstaticvoidmain(String[]args)
{
List<String>list1=Arrays.asList("a","f","e","x","w");
List<String>list2=Arrays.asList("a","b","c","d");
Stringtemp1=list1.toString().replaceAll("[\[\]]",",").replaceAll("\s+","");
Stringtemp2=list2.toString().replaceAll("[\[\]]",",").replaceAll("\s+","");
Stringresult2="";
for(inti=0;i<list1.size();i++)
{
if(temp2.indexOf(","+list1.get(i)+",")==-1)
{
result2+=list1.get(i)+",";
}
}
System.out.println("存在list1而不存在list2的元素有:"+result2);
System.out.println("同理可证");
}
}