当前位置:首页 » 编程语言 » java求交集

java求交集

发布时间: 2022-08-07 19:43:45

A. java求两个数组交集中元素的个数

import java.util.Scanner;
public class JiaoJi {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int set1_length=in.nextInt();
int set1[]=new int[set1_length];
for(int count1=0;count1<set1_length;count1++) {
set1[count1]=in.nextInt();
}
int set2_length=in.nextInt();
int set2[]=new int[set2_length];
int number=0;
for(int count2=0;count2<set2_length;count2++) {
set2[count2]=in.nextInt();
for (int count1=0; count1<set1_length;count1++) {
if(set1[count1]==set2[count2]) number++;
}
}
in.close();
if (number==0) System.out.println("None");
else System.out.println(number);
}
}

B. 再问一下关于:java中两个数组的交集怎么求

空间换时间,先创建Map集合Map<T,Integer> map,然后遍历第一个数组,调用map.put(T,1),然后遍历第二个数组的每个元素T,如果map.get(T) != null,则说明该元素为两个数组的交集,否则不是。

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){
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);
}

D. Java里面如何求两个集合的交集

用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]

E. 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);
}
}
}
}

F. JAVA怎么取多个List集合的交集

1、把多个list放到一个list中,生成 List<List<Object>>结构
2、遍历list,使用java8的规约操作,两两求交集
list.stream().rece((list1,list2) -> { list1.retainAll(list2); return list1;}).orElse(emptyList());

G. java求交集和并集

虽然想尽量维持你程序的原型,但是还是改的差不多了。学java注重的是面向对象的思想,建议你不要把太多精力放在这些算法上面,不能再像学习C语言那样学习java。

public class Group{
public void jiaoji(int[] a,int[] b){
for(int i=0;i<a.length;i++){
for(int j=0;j<b.length;j++){
if(a[i]==b[j]){
System.out.print(a[i]+",");
}
}
}
}
public void bingji(int[] a,int[] b){
for(int i=0;i<a.length;i++){
System.out.print(a[i]+",");
}
for(int i=0;i<b.length;i++){
boolean flag=true;
for(int j=0;j<a.length;j++){
if(b[i]==a[j]){
flag=false;
}
}
if(flag){
System.out.print(b[i]+",");
}
}
}
public static void main(String[] args){
int a[]={1,2,3,4,5};
int b[]={4,5,6,7,8};
Group group=new Group();
System.out.print("交集为:");
group.jiaoji(a,b);
System.out.print("\n并集为:");
group.bingji(a,b);
}
}

H. 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);
}

I. java 求交集 并集 差集

import java.util.*;

public class ArrayTest {
public static void main(String[] args) {
int[] a = {1,6,4,5,2,3,};
int[] b = {2,3,4,56,7,8,99};
int[] t = ArrayTest.并集(a, b);
for(int i:t)System.out.print(i+" ");

System.out.println();

t = ArrayTest.交集(a, b);
for(int i:t)System.out.print(i+" ");
}

static int[] 并集(int[] a,int[] b){
Arrays.sort(a);
Arrays.sort(b);
int[] t = new int[a.length];
System.array(a,0,t,0,t.length);
out:
for(int i:b){
for(int j:a){
if(i==j)continue out;
}
t=putInt(t,i);
}
Arrays.sort(t);
return t;
}

static int[] 交集(int[] a,int[] b){
Arrays.sort(a);
Arrays.sort(b);
int[] t = new int[0];
for(int i:a){
for(int j:b){
if(i==j){
t=putInt(t,i);
break;
}
}
}
return t;
}

static int[] putInt(int[] a,int i){
int[] t = new int[a.length+1];
System.array(a, 0,t,0,a.length);
t[a.length]=i;
return t;
}
}

//做了交集,并集,差集自己想吧

热点内容
猪猪侠脚本没反应 发布:2025-01-22 08:08:37 浏览:811
赛博朋克跟永劫无间哪个配置高 发布:2025-01-22 08:07:07 浏览:534
请尽快上传 发布:2025-01-22 08:06:22 浏览:188
河北编程培训 发布:2025-01-22 08:01:42 浏览:591
a星算法视频 发布:2025-01-22 07:55:01 浏览:878
快手安卓怎么直播 发布:2025-01-22 07:54:58 浏览:937
买服务器搭建vpn 发布:2025-01-22 07:53:21 浏览:808
路由器忘记密码如何解 发布:2025-01-22 07:38:47 浏览:154
5分钟视频编译 发布:2025-01-22 07:36:33 浏览:772
asp执行存储过程 发布:2025-01-22 07:35:55 浏览:127