【发布时间】:2016-12-14 22:43:37
【问题描述】:
我有一个Queue,我想将其转换为long[],并将其传递给计算百分位数的方法。
private final ConcurrentLinkedQueue<Long> holder = new ConcurrentLinkedQueue<>();
我正在使用ConcurrentLinkedQueue,因为我正在将多线程应用程序的延迟(以毫秒为单位)插入到上面的holder 队列中,所以我想要线程安全。
现在我的问题是如何将holder 队列转换为long[] 长数组,以便可以将其传递给下面的方法?有什么办法吗?
public static long[] percentiles(long[] latencies, double... percentiles) {
Arrays.sort(latencies, 0, latencies.length);
long[] values = new long[percentiles.length];
for (int i = 0; i < percentiles.length; i++) {
int index = (int) (percentiles[i] * latencies.length);
values[i] = latencies[index];
}
return values;
}
【问题讨论】:
-
你有没有尝试过?您面临的问题是什么?
-
这个问题可以重复吗? Convert a Queue to ArrayList