2016-12-14 3 views
1

Ich habe eine Queue, die ich in long[] konvertieren und es an meine Methode übergeben, die Perzentile berechnen.Queue in langes Array konvertieren?

private final ConcurrentLinkedQueue<Long> holder = new ConcurrentLinkedQueue<>(); 

ich ConcurrentLinkedQueue verwende, weil ich Latenzen bin Einfügen, die in Millisekunden von Multi-Thread-Anwendung in meine oben holder Warteschlange sind so wollte ich Thread sicher sein.

Jetzt ist meine Frage, wie kann ich holder Queue in long[] langen Array konvertieren, so dass ich es an meine unten Methode übergeben kann? Gibt es eine Möglichkeit, das zu tun?

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; 
    } 
+0

Hast du irgendwas probiert? Was ist das Problem, vor dem du stehst? –

+0

Darf diese Frage ein Duplikat sein? [Eine Warteschlange in ArrayList konvertieren] (http://stackoverflow.com/questions/20708358/convert-from-queue-to-arraylist) – dulindraxe

Antwort