2012-03-06 14 views
5

このような疑問がある人は、おそらく "Collections.sort"ではなく "Collection.sort"が必要です。ArrayListのCollections.sort()を呼び出せないのはなぜですか?<T>?

私は私のように定義された別のクラスのフィールドをしている

public class Store implements Serializable, Comparable<Store> { ... } 

として定義されたクラスを定義している:

ArrayList<Store> fStores = new ArrayList<Store>(); 

私はこのコレクションをソートしたいので、この方法では、私が呼ぶ:

Collection.sort(fStores); 

ただし、次のコンパイルエラーが発生します。

The method sort(ArrayList<Store>) is undefined for the type Collection 

ArrayListのリストを実装、およびドキュメントから:

public static <T extends Comparable<? super T>> void sort(List<T> list) 

だから、なぜ私はエラーが出るのですか?コンパレータの子孫を作成し、それをソートメソッドに渡すことも試みました。

私は「< Tはそれに対応していると思います。<?super T >> "私は理解していません...?

+1

は 'Collections.sort()'、 'ないCollection.sort()'はありませんか? –

+1

コレクションはタイプミスですか?私はあなたが 'コレクション'を意味すると思います –

答えて

7

あなたが見てする必要がある2つのこと基本的にありますので、基本的にあなたが並べ替えたりする必要がある場合Collections

This class consists exclusively of static methods that operate on or return collections. It contains polymorphic algorithms that operate on collections, "wrappers", which return a new collection backed by a specified collection, and a few other odds and ends

から

Collections

は、そのような種類のアルゴリズムはこれを使用しますか?

次がある: - >

Collection

これはJavaのコレクションフレームワークの基礎を提供するインタフェースです。マップとソートマップは含まれません。これは要素として知られているオブジェクトのグループを表し、具体的な実装のための実装を持っています。 ArrayListsとMapで作業したいときは、このことを考える必要があります。

結論として、コレクションには実行する静的アルゴリズムがあります。したがって、Collections.sortを使用してください。

3

Collectionの代わりにCollectionsと書く必要があります。彼らは関連しているが、異なっている。 :-)

1

Collections.sort()(複数のコレクション)を意味しましたか?

1

これは、Collections.sort()とsです。

import java.util.Collectionsあなたは問題ありません。コレクションは、ユーティリティクラスである一方、

Collections

Collection

コレクションインタフェースです:

1

あなたの問題は、これらの2つの別々のクラスであるCollections.sort()

Collection.sort()をいない呼び出しているということです。

+0

ビンゴ!早速のお返事ありがとうございます。 – Steve

+1

@スティーブもちろん、確か。幸せに助けてください:D –

0

また、eclipseを使用している場合は、Collectionsのimport文が正しいかどうかを再度確認してください。

1

は、ケースであなたが原因なエラーにここに来た:

The method sort(Comparator<...>) is undefined for the type List<...>

を次に、あなたはおそらく1.8、下位JDKを使用しています。 Javaビルド・パスでそれを変更します。

enter image description here

関連する問題