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

方法一:用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 list=new ArrayList();
		for(int i=0;i

运行结果为:

[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 list=new ArrayList();
		for(int i:array){
			list.add(i);
		}
		Set set=new HashSet();
		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


你可能感兴趣的:(java)