java数组最简单的去重方法_Java数组去重的方法
//第一种方式:最开始想到的是利用Set集合的不可重复性进行元素过滤
public static Object[] oneClear(Object[] arr){
Set set = new HashSet();
for(int i=0;i
set.add(arr[i]);
}
return set.toArray();
}
//第二种方式:要想保持原数组的顺序就使用有顺序、不重复特点的链表的哈希集合
public static Object[] twoClear(Object[] arr){
LinkedHashSet temp = new LinkedHashSet<>();
for(int i=0;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
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
//声明标记,是否重复
boolean isRepeat = true;
for(int j=i+1;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;
}
public static void main(String[] args) {
Object[] arrs={1,2,5,2,45,6,23,6,3,4,3,6,5,1};
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));
}
public static void printArray(Object[] arr){
for(Object object:arr){
System.out.print(object+" ");
}
System.out.println("");
结果:
java数组最简单的去重方法_Java数组去重的方法相关推荐
- java tostring方法_Java虚拟机如执行方法调用的(二)?
虚方法调用 Java里所有非私有实例方法调用都会被编译成invokevirtual指令. 接口方法调用都会被编译成invokeinterface指令.这两种指令都属于Java虚方法的调用. 在大多数情 ...
- java一般方法有哪些方法有哪些方法_Java代码优化有哪些方法?
Java代码优化是Java编程开发很重要的一个步骤,Java代码优化要注重细节优化,一个两个的细节的优化,产生的效果不大,但是如果处处都能注意代码优化,对代码减少体积.提高代码运行效率是有巨大帮助的, ...
- java工厂方法_Java设计模式之工厂方法模式
2.工厂方法模式 <设计模式之禅>中用神话故事女娲造人来比概述工厂方法模式. 女娲采集黄土捏成人的形状,然后放到八卦炉中烧制,最后放置到大地上生长,工艺过程是没有错的,但是意外随时都会发生 ...
- 反射java调用方法_java 使用反射调用方法
每个Method的对象对应一个具体的底层方法.获得Method对象后,程序可以使用Method里面的invoke方法来执行该底层方法. Object invoke(Object obj,Object ...
- java是最简单的语言吗_Java不是最简单的编程语言,可为什么全世界都在用?
Java是不是一门简单易学的.易上手的编程语言? 作为一个超过10年以上工作经验的Java开发者,我觉得应该可以来回答一下. 1 首先说结论:Java绝对不是最容易学或者最容易上手的语言. 我们稍微观 ...
- java 同类调用方法_JAVA中同类中方法的调用问题?
1.为什么可以直接new+构造方法,来创建对象.而不用创建实例引用呢,像常见的这种:Car car1=new Car;我记得看过有说java中没有被引用的对象将被GC处理.那这个算不算. 你创建了一个 ...
- java 反射调用set方法_java反射调用set方法时如果让参数做自动类型转换
这段时间学习java的反射机制想实现一个功能:遍历一个Map,然后利用反射机制调用BO的set方法,完成BO属性的自动注入.这样设计的初衷是解决Excel数据导入问题中的Map数据填充BO这一过程. ...
- java 定时执行方法_Java定时执行任务 方法总结
JAVA技巧(Java定时执行任务的实现方法)2009年02月07日 星期六 10:36定时执行任务的三种方法: 1)java.util.Timer. 2)ServletContextListener ...
- 简单的java图形_简单图形的输出_Java语言程
简单图形的输出_Java语言程 3.5.4 简单图形的输出 [例3-26] 编程显示以下图形(共N行,N由键盘输入). 程序运行结果:略. 分析与思考:(1)设N=5 第1行 4个空格=5-1 1个& ...
最新文章
- 有了它,AI甚至可以让你知道对方是否真的爱你?
- 一个CV算法工程师在技术方面的反思!
- 最新 主流笔记本cpu列表
- mysql5.7 only_full_group_by_Mysql5.7及以上版本 ONLY_FULL_GROUP_BY报错的解决方法
- docker启动mysql容器后又退出_docker容器刚运行就自动退出了
- smart-framework框架学习之DispatcherServlet分发机制
- python编辑器是什么_python开发用什么编辑器
- Cocos Creator学习のTiledMap
- hdu2825(AC 自动机)
- EOS Bios Boot Sequence 启动步骤
- 英语六级翻译整理【未更新完】
- ML机器学习基础的编程技巧:
- 《java深度历险》--王森
- TypeScript快速上手
- Sequence (矩阵快速幂+快速幂+费马小定理)
- win7中的无线网卡驱动文件
- 渐渐逝去的青春---老男孩
- imx6q android nfs normal boot log
- 35页危化品安全管理平台解决方案2022版
- Android 12.0 锁屏页面禁止下拉状态栏