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 ...
随机推荐
- java 操作 csv文件
CSV是逗号分隔文件(Comma Separated Values)的首字母英文缩写,是一种用来存储数据的纯文本格式,通常用于电子表格或数据库软件.在 CSV文件中,数据“栏”以逗号分隔,可允许程序通 ...
- MySQL 之数据库初识
一 数据库概述 数据库即存放数据的仓库,只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的.过去人们将数据存放在文件柜里,现在数据量庞大,已经不再适用. 数据库是长期存放在计算机内.有组 ...
- Java基础知识笔记第五章:子类与继承
子类与父类 子类 class 子类名 extends 父类名{ ....... } 类的树形结构 子类的继承性 子类和父类在同一包中的继承性 子类继承了父类不是private的成员属性和成员方法 ...
- python笔记心得
1.字典的映射 day=10# def get_sunday():# return 'Sunday'# def get_monday():# return 'monday'# def get_tues ...
- java模式之单例
懒汉式:需要实例的时候new public class Singleton_Lazy { private static Singleton_Lazy mSingleton; private Singl ...
- 【原】openresty学习
参考文档: 1.openresty最佳实践:https://moonbingbing.gitbooks.io/openresty-best-practices/content/ 2.openResty ...
- 【PAT甲级】1032 Sharing (25 分)
题意: 输入两个单词的起始地址和一个正整数N(<=1e5),然后输入N行数据,每行包括一个五位数的字母地址,字母和下一个字母的地址.输出这两个单词的公共后缀首字母的地址,若无公共后缀则输出-1. ...
- 树莓派4B踩坑指南 - (5)设置阿里云的源及解决apt提示依赖
解决树莓派apt升级/安装提示依赖问题: 注意!!buster是根据系统版本(cat /etc/os-release)来写的,如果是jessie或者stretch要改为buster.参考解决树莓派ap ...
- 学习SpringMVC 文件上传 遇到的问题,403:returned a response status of 403 Forbidden ,409文件夹未找到
问题一: 409:文件夹没有创建好,找不到指定的文件夹,创建了即可. 问题二: 403:returned a response status of 403 Forbidden 我出现这个错误的原因是因 ...
- 轉:StackOverflow2016最新架构探秘
轉載:http://www.infoq.com/cn/news/2016/03/Stack-Overflow-architecture-insi?utm_source=tuicool&utm_ ...