您的位置:首页 > 运维架构

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

2014-06-17 13:52 417 查看
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;
    }
    
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐