去除java數組中重複的數字

用了兩種方法,第一種用了list的contains方法,第二種用了Collections.sort方法,然後新建一個同等大小的數組,按順序加入元素,只有後面的元素大於數組的元素才添加。因爲已經排序了,可以保證此步驟不會有遺漏,提高效率。

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class RemoveRepeatedInteger {

    public static Integer[] filterDataWithList(Integer[] dataArr) {
        List<Integer> list = new ArrayList();
        int length = dataArr.length;
        Integer[] intArr = new Integer[length];
        for(int i=0, j=0; i<length; i++){
            if(!list.contains(dataArr[i])){
                list.add(dataArr[i]);
                intArr[j++] = dataArr[i];
            }
        }
        return intArr;
    }

    public static Integer[] filterDataWithSorting(Integer[] dataArr) {
        List<Integer> list = Arrays.asList(dataArr);
        Collections.sort(list);
        System.out.println("sort arr:"+list);
        int length = dataArr.length;
        Integer[] intArr = new Integer[length];

        for(int i=0, j=0; i<length; i++){
            Integer num = list.get(i);
            if(i==0){
                intArr[j] = num;
            }else{
                if(num>intArr[j]){
                    intArr[++j] = num;
                }
            }
        }
        return intArr;
    }

    public static void main(String[] args) {
        Integer[] dataArr = new Integer[]{1, 3, 5, 7, 7, 8, 8, 9, 10, 10};
        System.out.println("before filter: "+Arrays.asList(dataArr));
        Integer[] objects;
        objects=filterDataWithSorting(dataArr);
//        objects = filterDataWithList(dataArr);
        System.out.println("after filter: "+Arrays.asList(objects));

    }
}

 

發佈了39 篇原創文章 · 獲贊 9 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章