❶ java list集合怎么交集
1.8
finalList<String>l1=newArrayList<String>();
l1.add("a");l1.add("b");l1.add("c");l1.add("d");
List<String>l2=newArrayList<String>();
l2.add("b");l2.add("c");l2.add("d");l2.add("e");
List<String>result=newArrayList<String>();
result.addAll(l2);
result.removeIf(newPredicate<String>(){
@Override
publicbooleantest(Stringt){
return!l1.contains(t);
}
});
System.err.println(result);
普通操作:
finalList<String>l1=newArrayList<String>();
l1.add("a");l1.add("b");l1.add("c");l1.add("d");
List<String>l2=newArrayList<String>();
l2.add("b");l2.add("c");l2.add("d");l2.add("e");
List<String>result=newArrayList<String>();
for(Strings:l2){
if(l1.contains(s)){
result.add(s);
}
}
System.err.println(result);
❷ 在java中怎样求多个arraylist集合的交集
用Collection提供的retainAll方法,如下是测试代码:
import java.util.*;
public class TestList1{
public static void main(String[] args){
List list1=new ArrayList();
list1.add("A");list1.add("B");list1.add("C");
List list2=new ArrayList();
list2.add("B");list2.add("C");list2.add("D");
list1.retainAll(list2);
System.out.println(“交集为:”+list1);
}
}
//测试:
//交集为:[B, C]
❸ java程序,给定的两个数组求交集,我知道用两个 for循环可以得到这些数
publicclassIntersection{
publicstaticvoidmain(String[]args){
//给定两个数组
int[]as={1,5,8,9,4,6};
int[]bs={5,7,3,2};
//记录相同的元素(String类型方便下面判断)
String[]cs=newString[as.length>bs.length?as.length:bs.length];//长度不超过上麦年量数组中最大长度
//循环比较
for(inti=0;i<as.length;i++){
intflag=0;//有相同元素标记
for(intj=0;j<bs.length;j++){
if(bs[j]==as[i]){
flag=flag+1;
}
}
intplace=0;//记录cs数组已经有几个元素
for(Stringj:cs){
place=0;
if(j!=null&&j!=""){
place=place+1;
}
}
if(flag!=0){
cs[place]=as[i]+"";
}
}
//循环输出交集数组
for(Stringi:cs){
if(i!=null){
System.out.println(i);
}
}
}
}
❹ Java中list集合的交集和差集的用法和如何将
只要一小句便可求出交集--> list1.retainAll(list2); list1和list2的位置无所谓,这样循环一下list1试试,如果还有多个list,一样的道理
❺ 用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){
if(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);
}
❻ JAVA怎么取多个List集合的交集
1、把多个list放到一个list中,生成 List<List<Object>>结构
2、遍历list,使用java8的规约操作,两两求交集
list.stream().rece((list1,list2) -> { list1.retainAll(list2); return list1;}).orElse(emptyList());
❼ java 求三个数组的交集
其实可以参考一楼的。
// 求两个数组的交集
public static void intersect(Double[] arr1, Double[] arr2, Double[] arr3) {
for (Double str : arr1) {
if(Arrays.asList(arr2).contains(str) && Arrays.asList(arr3).contains(str)){
System.out.println(str);
}
}
}
public static void main(String[] args) {
Double[] arrayA = new Double[]{1d,2d,3d,4d,5d};
Double[] arrayB = new Double[]{1d,2d,7d,8d,9d};
Double[] arrayC = new Double[]{1d,2d,3d,4d,9d};
intersect(arrayA, arrayB, arrayC);
}
❽ 请问java有工具类取两个list的并集吗
好象List的里retainAll可以完成吧,可以保留相同的元素,将不同的删除,你可以试一下,如果这个不是创建一个新的list,是在原有的list上直接修改。
list1.retainAll(list2);
这样处理后,list1就是处理过的。
看成交集了,失败。。。
并集的话直接把两个的数据都放到一个Set集合里就行了
Set set = new HashSet();
set.addAll(list1);
set.addAll(list2);
这样set里保存的数据就是你要的结果
❾ java array1,array2,array3三个数组取交集
List<Object> list=new ArrayList<Object>();
for(Object o:array1){
if(Arrays.asList(array2).contains(o)&&Arrays.asList(array3).contains(o)){
list.add(o);
}
}
return list.toArray();
❿ java求交集和并集
处理集合交并集运算的类,实现java专门的集合类
简单实现代码如下:
package test;
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.addAll(set2);
System.out.println("并集:"+result);
}
}