排序并过滤掉相同的值 一种算法 和 其优化算法(使用it.unimi.dsi.fastutil.longs.LongOpenHashSet)

import java.util.Arrays;


public class LongSortAndFilter {


    public static long[] process(long[] values, int size) {
        if (size == 0) {
            return new long[0];
        }
        Arrays.sort(values, 0, size);
        long[] tvalues = new long[size];
        int index = 0;
        tvalues[index++] = values[0];
        for (int i = 1; i < size; i++) {
            long value = values[i];
            if (value != values[i - 1]) {
                tvalues[index++] = value;
            }
        }
        long[] fvalues = new long[index];
        System.arraycopy(tvalues, 0, fvalues, 0, index);
        return fvalues;
    }
    
}










import it.unimi.dsi.fastutil.longs.LongOpenHashSet;

import java.util.Arrays;

public class LongSortAndFilter {

    public static long[] process(long[] values, int size) {
        if (size == 0) {
            return new long[0];
        }
        LongOpenHashSet set = new LongOpenHashSet();
        for (int i = 0; i < size; i++) {
            set.add(values[i]);
        }
        long[] finalValues = set.toLongArray();
        Arrays.sort(finalValues);
        return finalValues;
    }
    
}


你可能感兴趣的:(排序并过滤掉相同的值 一种算法 和 其优化算法(使用it.unimi.dsi.fastutil.longs.LongOpenHashSet))