今天小编给大家分享的是java创建不重复集合应该如何做,相信很多人都不太了解,为了让大家更加了解java创建不重复集合的方法,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。
java怎么创建不重复的集合?
java中创建不重复的集合有多种方法,下面我们介绍Java中创建不重复集合的四种常用方法。
方法一、需要一个存储去重后元素的数组,然后两层循环,外层遍历原数组,内容逐个判断是否和之后的元素重复,然后再提出来存入新的数组。
public static Object[] ifRepeat(Object[] arr){
//用来记录去除重复之后的数组长度和给临时数组作为下标索引
int t = 0;
//临时数组
Object[] tempArr = new Object[arr.length];
//遍历原数组
for(int i = 0; i < arr.length; i++){
//声明一个标记,并每次重置
boolean isTrue = true;
//内层循环将原数组的元素逐个对比
for(int j=i+1;j<arr.length;j++){
//如果发现有重复元素,改变标记状态并结束当次内层循环
if(arr[i]==arr[j]){
isTrue = false;
break;
}
}
//判断标记是否被改变,如果没被改变就是没有重复元素
if(isTrue){
//没有元素就将原数组的元素赋给临时数组
tempArr[t] = arr[i];
//走到这里证明当前元素没有重复,那么记录自增
t++;
}
}
//声明需要返回的数组,这个才是去重后的数组
Object[] newArr = new Object[t];
//用arraycopy方法将刚才去重的数组拷贝到新数组并返回
System.arraycopy(tempArr,0,newArr,0,t);
return newArr;
}
方法二、只需要创建一个集合,然后遍历数组逐一放入集合,只要在放入之前用contains()方法判断一下集合中是否已经存在这个元素就行了,然后用toArray转成数组。
public static void ifRepeat2(Object[] arr){
//创建一个集合
List list = new ArrayList();
//遍历数组往集合里存元素
for(int i=0;i<arr.length;i++){
//如果集合里面没有相同的元素才往里存
if(!list.contains(arr[i])){
list.add(arr[i]);
}
}
//toArray()方法会返回一个包含集合所有元素的Object类型数组
Object[] newArr = list.toArray();
//遍历输出一下测试是否有效
for(int i=0;i<newArr.length;i++){
System.out.println(" "+newArr[i]);
}
}
方法三、最简单的方法就是利用Set集合无序不可重复的特性进行元素过滤。
public static Object[] ifRepeat3(Object[] arr){
//实例化一个set集合
Set set = new HashSet();
//遍历数组并存入集合,如果元素已存在则不会重复存入
for (int i = 0; i < arr.length; i++) {
set.add(arr[i]);
}
//返回Set集合的数组形式
return set.toArray();
}
方法四、链表的哈希集合:有顺序,不重复。
public static void ifRepeat4(Object[] arr){
LinkedHashSet<Object> haoma = new LinkedHashSet<Object>();
for (int i = 0; i < arr.length; i++) {
haoma.add(arr[i]);
}
// 创建迭代器
Iterator<Object> iterator = haoma.iterator();
int a = 0;
// 迭代集合
while (iterator.hasNext()) { // true
Object c = iterator.next();
System.out.println(c);
}
}
以上就是java创建不重复集合应该如何做的简略介绍,当然详细使用上面的不同还得要大家自己使用过才领会。如果想了解更多,欢迎关注亿速云行业资讯频道哦!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。