Java数组去重的方法
//第一种方式:最开始想到的是利用Set集合的不可重复性进行元素过滤
public static Object[] oneClear(Object[] arr){
Set set = new HashSet();
for(int i=0;i<arr.length;i++){
set.add(arr[i]);
}
return set.toArray();
}
//第二种方式:要想保持原数组的顺序就使用有顺序、不重复特点的链表的哈希集合
public static Object[] twoClear(Object[] arr){
LinkedHashSet<Object> temp = new LinkedHashSet<>();
for(int i=0;i<arr.length;i++){
temp.add(arr[i]);
}
return temp.toArray();
}
//第三种方式:创建一个list集合,然后遍历数组将元素放入集合,再用contains()方法判断一个集合中是否已存在该元素即可
public static Object[] threeClear(Object[] arr){
List list = new ArrayList();
for(int i=0;i<arr.length;i++){
if(!list.contains(arr[i])){
list.add(arr[i]);
}
}
return list.toArray();
}
//第四种方式:两层循环遍历原数组,然后逐个判断是否和之后的元素重复,同时设立一个标记,用来分辨是否重复,根据标记将不重复的元素存入新数组
public static Object[] fourClear(Object[] arr){
int t=0;
//临时数组
Object[] xinArr=new Object[arr.length];
for(int i=0;i<arr.length;i++){
//声明标记,是否重复
boolean isRepeat = true;
for(int j=i+1;j<arr.length;j++){
//如果有重复元素,将标记置为false
if(arr[i]==arr[j]){
isRepeat = false;
break;
}
}
//标记为true表示没有重复元素
if(isRepeat){
xinArr[t] = arr[i];
t++;
}
}
//去重后数组
Object[] newArr = new Object[t];
System.arraycopy(xinArr, 0, newArr, 0, t);
return newArr;
}
System.out.println("one:");
printArray(oneClear(arrs));
System.out.println("two:");
printArray(twoClear(arrs));
System.out.println("three:");
printArray(threeClear(arrs));
System.out.println("four:");
printArray(fourClear(arrs));
}
for(Object object:arr){
System.out.print(object+" ");
}
System.out.println("");
结果:
最新文章
- 独立成分分析(ICA)在fMRI数据处理时timecourse的理解
- 【python】多进程学习
- 【JAVA】JAVAMail使用属性资料
- 20145334赵文豪 《Java程序设计》第1周学习总结
- JsRender for index 循环索引使用说明
- jQuery easyui combobox级联及内容联想
- NOLOCK、HOLDLOCK、UPDLOCK、TABLOCK、TABLOCKX
- hibernate search例子
- 正则匹配 去掉 多余的js和html标签
- NPOI读取Excel,导入数据到Excel练习01
- 文件I/O之fcntl函数
- [jobdu]二维数组中的查找
- redis 源代码分析(一) 内存管理
- 一个想法照进现实-《IT连》创业项目:关于团队组建
- “海市蜃楼”般的逛街体验——VR全景智慧城市常诚
- Error Code: 1318. Incorrect number of arguments for PROCEDURE student.new_procedure; expected 0, got
- EasyUI整合篇
- Linux 下MQ的安装和配置亲测
- [pytorch修改]npyio.py 实现在标签中使用两种delimiter分割文件的行
- 深入浅出的webpack4构建工具--webpack4+vue+vuex+mock模拟后台数据(十九)
热门文章
- vue+element ui table组件封装,使用render渲染
- SQL mybatis动态查询小结
- java.util.ConcurrentModificationException 异常原因和解决方法
- Python 的直接赋值、Deepcopy、Copy的区别
- python学习记录(持续更新)--最最最基础的一部分(方法,异常处理,注释,类)
- 02-07Android学习进度报告七
- 【转载】Cmd Markdown 公式指导手册
- Android游戏开发学习(5)--实现Button悬浮于与SurfaceView之上
- 34 java 文件过滤 FileFilter
- Charles + Android 抓取Https数据包 (适用于Android 6.0及以下)