集合去重

方法一:利用集合的contains方法,创建临时集合组装数据去重

public void listTest1(){

System.out.println("方法一");

List list = new ArrayList();for (int i=0;i<=2;i++){for (int j=0;j<=3;j++){

list.add(j);

}

}//创建一个临时集合装去重后的数据

List tempList = new ArrayList();for(Integer i : list){if(!tempList.contains(i)){//判断是否有重复数据,如果没有就将数据装进临时集合

tempList.add(i);

}

}

System.out.println("去重前");for(Integer i:list){

System.out.print(i+" ");

}

System.out.println();

System.out.println("去重后");for(Integer i:tempList){

System.out.print(i+" ");

}

}

方法二:通过Iterator 的remove方法

public voidlistTest2(){

System.out.println("方法二");

List list = new ArrayList();for (int i=0;i<=2;i++){for (int j=0;j<=3;j++){

list.add(j);

}

}

System.out.println("去重前");for(Integer i:list){

System.out.print(i+" ");

}//创建一个临时集合装去重后的数据

List tempList = new ArrayList();

Iterator iter =list.iterator();while(iter.hasNext()){int t=iter.next();if(tempList.contains(t)){

iter.remove();

}else{

tempList.add(t);

}

}

System.out.println();

System.out.println("去重后");for(Integer i:list){

System.out.print(i+" ");

}

}

数组去重

方法一:传入一个Object数组,然后返回去重后的数组

publicObject[] arrayTest1(Object[] arr){//用来记录去除重复之后的数组长度和给临时数组作为下标索引

int t = 0;

Object[] tempArr = newObject[arr.length];

for(int i = 0; i < arr.length; i++){//声明一个标记,并每次重置

boolean isTrue = true;

for(int j=i+1;j

if(arr[i]==arr[j]){

isTrue= false;break;

}

}//判断标记是否被改变,如果没被改变就是没有重复元素

if(isTrue){

tempArr[t] =arr[i];//到这里证明当前元素没有重复,那么记录自增

t++;

}

}//声明需要返回的数组,这个才是去重后的数组

Object[] newArr = newObject[t];//用arraycopy方法将刚才去重的数组拷贝到新数组并返回

System.arraycopy(tempArr,0,newArr,0,t);returnnewArr;

}

方法二:利用hashset去重

publicObject[] arrayTest2(Object [] arr){//实例化一个set集合

Set set = newHashSet();//遍历数组并存入集合,如果元素已存在则不会重复存入

for (int i = 0; i < arr.length; i++) {

set.add(arr[i]);

}//返回Set集合的数组形式

returnset.toArray();

}

main方法

public static voidmain(String args[]){

ArrayAndListRemove remove= newArrayAndListRemove();

System.out.println("集合去重");

remove.listTest1();

remove.listTest2();

System.out.println("数组去重");

Object[] arr= {0,1,2,3,0,1,2,3,0,1,2,3};

System.out.println("去重前");for (int i=0;i

System.out.println(arr[i]+" ");

}

System.out.println("去重后");

Object[] arr1=remove.arrayTest1(arr);for (int i=0;i

System.out.print(arr1[i]+" ");

}

System.out.println();

Object[] arr2=remove.arrayTest2(arr);for (int i=0;i

System.out.print(arr2[i]+" ");

}

}

控制台打印结果

注意:public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) src:源数组; srcPos:源数组要复制的起始位置; dest:目的数组; destPos:目的数组放置的起始位置; length:复制的长度。src and dest都必须是同类型或者可以进行转换类型的数组. 有趣的是这个函数可以实现自己到自己复制

java 数组合并 去重_Java集合与数组去重相关推荐

  1. jquery数组去重:纯数字数组去重,forEach判断数组是否含有该字段,单个数组通过某个字段名去重value值,多个数组合并同时根据某个字段进行去重

    纯数字数组去重 const numbers = [1, 1, 20, 3, 3, 3, 9, 9]; const uniqueNumbers = [...new Set(numbers)] //输出u ...

  2. java list详解_java集合List解析

    作为一个Developer,Java集合类是我们在工作中运用最多的.最频繁的类.相比于数组(Array)来说,集合类的长度可变,更加适合于现代开发需求: Java集合就像一个容器,可以存储任何类型的数 ...

  3. php数组合并 要保持两个数组的键名都不变

    php数组合并 要保持两个数组的键名都不变 array_merge会使键名发生变化. 用 + 号最简单,且不会改变数组的键名 $a = array("a" => " ...

  4. java数组合并排序_Java将两排序数组合并

    早些天给深圳芒果网投了一份简历,接到了面试电话,经过三轮面试,最后也拿到了offer.前两轮面试还好,问的问题都还答的出,到第三轮的时候,出了一道算法题,可能太紧张,思考许久也只给出了解题思路,没有将 ...

  5. java集合和数组随你转换_java集合和数组互相转换

    // 抽时间多了解集合框架和数组,不能只要是数组就会写ArrayList,碰到键值对就是HashMap // 每次用到集合,我们都要像小和尚念经般的熟悉下面内容: a) List Set Map是集合 ...

  6. java的集合和数组_Java集合和数组的区别

    Java集合和数组的区别 集合和容器都是Java中的容器. 区别 数组特点:大小固定,只能存储相同数据类型的数据 集合特点:大小可动态扩展,可以存储各种类型的数据 转换 数组转换为集合: Arrays ...

  7. 中转换成list集合_Java集合、数组与泛型中的几个陷阱,你掉进了几个?

    来源:苦逼的码农(ID:di201805) 下面我总结了集合.泛型.数组转集合等一些常见的陷进,认真看完,相信你绝对有所收获. 1.List ,List> 与 List 有区别吗? 说实话,我敢 ...

  8. java四个数打擂_Java语言逻辑 数组

    <Java语言逻辑 数组>由会员分享,可在线阅读,更多相关<Java语言逻辑 数组(42页珍藏版)>请在人人文库网上搜索. 1.数组,Java语言逻辑,1.为什么需要数组,一次 ...

  9. java 数组的索引_java如何寻找数组中心索引

    java如何寻找数组中心索引 发布时间:2020-04-21 10:10:24 来源:亿速云 阅读:65 作者:小新 本篇文章和大家了解一下java如何寻找数组中心索引.有一定的参考价值,有需要的朋友 ...

最新文章

  1. Qt Creator调试Qt Quick示例应用程序
  2. java 16进制数组 字符串_byte数组转换成16进制字符串和字符数组的方法
  3. Flutter代码锦囊---根据环境选择URL地址
  4. VB得到指定文件夹下的文件列表
  5. posix,perl正则表达式区别
  6. php 读取管道,php – 使用proc_open时从STDIN管道读取
  7. hadoop集群图解_一个hadoop集群的网络拓补图
  8. iQOO5G手机卡槽公布
  9. ie型lfsr_线性反馈移位寄存器原理与实现 - 全文
  10. cd linux 官网,cdlinux
  11. 研究生学位论文文献检索小技巧——妙用谷歌学术搜索
  12. python日程表代码_【算法提高班】《我的日程安排表》系列
  13. 软件测试薪资标准,软件测试月薪过万需要具备哪些技能?
  14. mysql例子 restful_restful例子问题
  15. 赛后总结2018-08-25
  16. mysql语句总结_mysql语句总结
  17. 初级开发人员的缺点_成为成功的初级开发人员的10条最佳建议
  18. 如何实现水平,垂直,水平垂直居中
  19. mysql 视图的作用
  20. angelababy都靠它保持身材,只需10秒随时随地喝到新鲜果汁!

热门文章

  1. Vmstat说明及简单使用
  2. 一个自动生成web和微服务项目代码工具sponge
  3. R语言e1071包做SVR怎么取出权重
  4. chimee hls m3u8
  5. Linux查找文件的四种方式
  6. vue音乐卡住_Vue实现mp3音乐播放及动态进度条
  7. 查看linux操作系统的基本命令
  8. 挣钱靠得是自己的能力!
  9. IGS大会回顾|穿越火线手游背后的数据库TcaplusDB
  10. 2017福州大学面向对象程序设计课程作业七