1. 程式人生 > >Java實現陣列去除重複資料的方法

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<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不僅可以使元素不重複,而且可以實現排序等功能的集合,它在物件元素新增到集合中時會自動按照某種比較規則將其插入到有序的物件序列中。