3

重複の可能性:
正の整数の配列を形成およびソートするための最速の戦略

ソートされていない整数の反復可能オブジェクトからソートされた配列を取得するための最速の方法は何でしょうか?現在、私はiterable nを何度も繰り返し(nはリストのサイズです)、iterableから最大値を取得して配列に入れることでそれを行っています。しかし、私はこれをクリーンアップして、いくつかの優れたライブラリに任せたいと思っています。

おそらく、この目的のためにGuavaなどの人気のあるライブラリを使用してもかまいません。

4

2 に答える 2

7

これは、基本的にassyliasがすでに提供しているものと同じ答えですが、クラスパスにGoogle Guavaがある場合は、次のように短縮できます。

import java.util.Collections;
import java.util.List;

import com.google.common.collect.Lists;

...

List list = Lists.newArrayList(iterable);
Collections.sort(list);
于 2012-11-02T14:32:53.677 に答える
1

コメントしたように、最も簡単でおそらく最速の方法は、コレクションにデータを入力して並べ替えることです。この場合は、単にArrayListを使用します。

List<Integer> sortedList = new ArrayList<>();
for (Integer i : yourIterable) {
    sortedList.add(i);
}
Collections.sort(sortedList);

Iterableのサイズが事前にわかっている場合は、適切なサイズで配列リストを初期化して、効率をさらに高めることができます。

List<Integer> sortedList = new ArrayList<>(size);
于 2012-11-02T13:56:43.600 に答える