您的位置:首页 > 编程语言 > Java开发

Java实现数组去除重复数据的方法

2018-03-25 11:55 507 查看
方法一:用List集合实现

package com.suanfa;

import java.util.ArrayList;

public class qqq {

public static void main(String[] args) {
int[] str={3,2,2,6,6,8,1};
ArrayList<Integer> list=new ArrayList<Integer>();
for(int i=0;i<str.length;i++){
if(!list.contains(str[i])){
list.add(str[i]);
}
}
System.out.println(list);

}

}


运行结果为:

[3, 2, 6, 8, 1]

从结果中可以看到重复的元素被去除,但是没有实现排序的功能。

方法二:用LiST和Set实现

public class qqq {

public static void main(String[] args) {
int[] array={3,2,2,6,6,8,1};
List<Integer> list=new ArrayList<Integer>();
for(int i:array){
list.add(i);
}
Set<Integer> set=new HashSet<Integer>();
set.addAll(list);
System.out.println(set);

}

}

运行结果为:

[1, 2, 3, 6, 8]

从结果可以看到重复的元素被去掉,并且实现了排序

方法三:使用用hashSet或者TreeSet实现

public class qqq{
public static void main(String[] args){
Integer[] array1={3,2,2,6,6,8,1};
HashSet hSet=new HashSet(Arrays.asList(array1));
TreeSet hSet2=new TreeSet(Arrays.asList(array1));
Iterator a=hSet2.iterator();
while(a.hasNext()){
System.out.print(a.next()+" ");
}
}
}

运行结果为:

1 2 3 6 8 

可以看出不仅去除了重复元素,也实现了排序

注意:  其中
Arrays.asList()
是将一个数组转化为一个List对象,这个方法会返回一个ArrayList类型的对象,
这个ArrayList类并非java.util.ArrayList类,而是Arrays类的静态内部类!

TreeSet不仅可以使元素不重复,而且可以实现排序等功能的集合,它在对象元素添加到集合中时会自动按照某种比较规则将其插入到有序的对象序列中。

          Arrays.asList()有几个注意点,见https://blog.csdn.net/pengzhisen123/article/details/79685230
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: