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("");
结果:
Java数组去重的方法的更多相关文章
- (PASS)JAVA数组去重 三种方法 (不用集合)
第一种方法(只学到数组的看): 定义一个新的数组长度和旧数组的长度一样,存储除去重复数据的旧数组的数据和0, package demo01; import java.sql.Array; import ...
- java数组去重
java数组去重 1.创建新数组,用于保存比较结果 2.设定随机数组最大最小值 3.开始去重 4.计算去重所需时间 package org.zheng.collection; import java. ...
- (网页)java数组去重总结(转)
转自CSDN: 1.背景 根据不同的业务逻辑,经常会遇到数组中存在多个重复元素的场合,总结了下数组的排序,留个记录. 2.实现方法 总结了四种方法,接下来进行展示 1.方法一 //数组去重方法一 ...
- Javascript中的数组去重-indexof方法
在Javascript中,有时我们会用到数组去重.我在这里给大家介绍一下本人认为最简单实用的一种方法-indexOf()去重. var arr = [1,1,1,2,2,2,3,3,4,5,6,2,1 ...
- js数组去重的方法(转)
JS数组去重的几种常见方法 一.简单的去重方法 // 最简单数组去重法 /* * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中 * IE8以下不支持数组的indexOf方法 * */ ...
- 前端html数组去重的方法
数组去重 用到的知识点: 1:indexOf() 该方法是返回数组中元素第一次出现的索引值: 如果有,则正常返回索引值: 如果检索的内容不存在于数组中,则返回-1 2:for循环 练习:数组去重 // ...
- JS实现数组去重的方法(6种)
方法一: 双层循环,外层循环元素,内层循环时比较值 如果有相同的值则跳过,不相同则push进数组 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Arra ...
- JAVA数组的基本方法
数组的基本方法 数组可以存放多个数据,多个数据类型要统一数组格式: 格式一:常用写法 数组类型[] 数组名称 = new 数据类型[数组长度]; 格式二:蛋疼写法 数组类型[] 数组名称; 数组名称 ...
- JS实现数组去重的方法
1.使用ES6的Set进行去重 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...
随机推荐
- 01背包第k最优解
附题目链接:Bone Collector II Input The first line contain a integer T , the number of cases.Followed by T ...
- 《程序之美系列(套装共6册)》[美]斯宾耐立思 等 (作者) epub+mobi+azw3
<架构之美>内容包括:facebook的架构如何建立在以数据为中心的应用生态系统之上.xen的创新架构对操作系统未来的影响.kde项目的社群过程如何让软件的架构从粗略的草图成为漂亮的系统. ...
- N-tier architecture N层架构 (转)
下面的内容既有我的理解,也有翻译的内容,翻译的书名为: <<Expert C# 2008 Business Objects >>http://www.douban.com/su ...
- 前端学习 之 JavaScript基础
一. JavaScript简介 1. JavaScript的历史背景介绍 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版.这是历史上第一个比较成熟的网络浏览器,轰动一时 ...
- Thread的join方法
一个线程在执行的过程中,可能调用另一个线程,前者可以称为调用线程,后者成为被调用线程. Thread.Join方法的使用场景:调用线程挂起,等待被调用线程执行完毕后,继续执行. 如下案列: 当NewT ...
- 创建SSH keys用于添加到Git服务器上
SSH keys SSH key 可以让你在你的电脑和Git服务器之间建立安全的加密连接.先执行以下语句来判断是否已经存在本地公钥: cat ~/.ssh/id_rsa.pub 如果你看到一长串以 s ...
- springboot RESTful Web Service
参考:http://spring.io/guides/gs/rest-service-cors/
- 微信小程序引用外部js,引用外部样式,引用公共页面模板
https://blog.csdn.net/smartsmile2012/article/details/83414642 ================小程序引用外部js============= ...
- springboot,vue,shiro整合 关于登录认证功能
首先是session问题 传统session认证 http协议是一种无状态协议,即浏览器发送请求到服务器,服务器是不知道这个请求是哪个用户发来的.为了让服务器知道请求是哪个用户发来的,需要让用户提供用 ...
- linux查漏补缺-Linux文件目录结构一览表
FHS 标准 FHS(Filesystem Hierarchy Standard),文件系统层次化标准,该标准规定了 Linux 系统中所有一级目录以及部分二级目录(/usr 和 /var)的用途. ...