java 数组合并 去重_Java集合与数组去重
集合去重
方法一:利用集合的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集合与数组去重相关推荐
- jquery数组去重:纯数字数组去重,forEach判断数组是否含有该字段,单个数组通过某个字段名去重value值,多个数组合并同时根据某个字段进行去重
纯数字数组去重 const numbers = [1, 1, 20, 3, 3, 3, 9, 9]; const uniqueNumbers = [...new Set(numbers)] //输出u ...
- java list详解_java集合List解析
作为一个Developer,Java集合类是我们在工作中运用最多的.最频繁的类.相比于数组(Array)来说,集合类的长度可变,更加适合于现代开发需求: Java集合就像一个容器,可以存储任何类型的数 ...
- php数组合并 要保持两个数组的键名都不变
php数组合并 要保持两个数组的键名都不变 array_merge会使键名发生变化. 用 + 号最简单,且不会改变数组的键名 $a = array("a" => " ...
- java数组合并排序_Java将两排序数组合并
早些天给深圳芒果网投了一份简历,接到了面试电话,经过三轮面试,最后也拿到了offer.前两轮面试还好,问的问题都还答的出,到第三轮的时候,出了一道算法题,可能太紧张,思考许久也只给出了解题思路,没有将 ...
- java集合和数组随你转换_java集合和数组互相转换
// 抽时间多了解集合框架和数组,不能只要是数组就会写ArrayList,碰到键值对就是HashMap // 每次用到集合,我们都要像小和尚念经般的熟悉下面内容: a) List Set Map是集合 ...
- java的集合和数组_Java集合和数组的区别
Java集合和数组的区别 集合和容器都是Java中的容器. 区别 数组特点:大小固定,只能存储相同数据类型的数据 集合特点:大小可动态扩展,可以存储各种类型的数据 转换 数组转换为集合: Arrays ...
- 中转换成list集合_Java集合、数组与泛型中的几个陷阱,你掉进了几个?
来源:苦逼的码农(ID:di201805) 下面我总结了集合.泛型.数组转集合等一些常见的陷进,认真看完,相信你绝对有所收获. 1.List ,List> 与 List 有区别吗? 说实话,我敢 ...
- java四个数打擂_Java语言逻辑 数组
<Java语言逻辑 数组>由会员分享,可在线阅读,更多相关<Java语言逻辑 数组(42页珍藏版)>请在人人文库网上搜索. 1.数组,Java语言逻辑,1.为什么需要数组,一次 ...
- java 数组的索引_java如何寻找数组中心索引
java如何寻找数组中心索引 发布时间:2020-04-21 10:10:24 来源:亿速云 阅读:65 作者:小新 本篇文章和大家了解一下java如何寻找数组中心索引.有一定的参考价值,有需要的朋友 ...
最新文章
- Qt Creator调试Qt Quick示例应用程序
- java 16进制数组 字符串_byte数组转换成16进制字符串和字符数组的方法
- Flutter代码锦囊---根据环境选择URL地址
- VB得到指定文件夹下的文件列表
- posix,perl正则表达式区别
- php 读取管道,php – 使用proc_open时从STDIN管道读取
- hadoop集群图解_一个hadoop集群的网络拓补图
- iQOO5G手机卡槽公布
- ie型lfsr_线性反馈移位寄存器原理与实现 - 全文
- cd linux 官网,cdlinux
- 研究生学位论文文献检索小技巧——妙用谷歌学术搜索
- python日程表代码_【算法提高班】《我的日程安排表》系列
- 软件测试薪资标准,软件测试月薪过万需要具备哪些技能?
- mysql例子 restful_restful例子问题
- 赛后总结2018-08-25
- mysql语句总结_mysql语句总结
- 初级开发人员的缺点_成为成功的初级开发人员的10条最佳建议
- 如何实现水平,垂直,水平垂直居中
- mysql 视图的作用
- angelababy都靠它保持身材,只需10秒随时随地喝到新鲜果汁!