用HashSet查找两个int数组中的相同元素
其实用两个循环嵌套就可以实现,但这里只是为了演示HashSet的去重功能。
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import com.sun.java_cup.internal.internal_error;
public class FindSameElements {
/**
* 获取两个整型数组之间的相同元素集合
* @param array1 参数数组1
* @param array2 参数数组2
* @return 两个数组之间相同的元素
*/
public static HashSet findSame(int array1[] , int array2[]){
HashSet result = new HashSet();//重复元素结果集合
HashSet set = new HashSet();//利用HashSet来寻找重复元素
for(int i = 0 ;i < array1.length ; i++){
set.add(array1[i]);;//把array1添加到set,有过滤作用
}
int[] temp = dropSame(array2);
for( int i = 0; i < temp.length ; i++){
if(!set.add(temp[i])){//若有重复元素,add方法返回false
result.add(temp[i]);//将重复出现的元素加入结果集合
}
}
return result;
}
/**
* 去掉数组内部重复元素
* @param array
* @return
*/
public static int[] dropSame(int[] array){
int[] arr = new int[array.length];
HashSet set = new HashSet();
List list = new ArrayList();
for(int i = 0; i < array.length ; i++){
set.add(array[i]);//用set去掉array中重复的元素
}
list.addAll(set);
for(int i = 0 ; i < list.size() ; i++){
arr[i] = list.get(i);
}
return arr;
}
public static void main(String[] args) {
int a[] = {1,6,2,8,5,8,6,9,0};
int b[] = {4,5,4,8,7,6,2,0};
//获取重复元素集合
HashSet result = findSame(a, b);
//遍历输出result元素
for(Object o : result){
System.out.println(o+"");
}
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· DeepSeek 解答了困扰我五年的技术问题。时代确实变了!
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 趁着过年的时候手搓了一个低代码框架
· 推荐一个DeepSeek 大模型的免费 API 项目!兼容OpenAI接口!