Iterableを実装したカスタムリスト(コレクションではありません)があります。リストが実装されていないのは、そうしすぎるとメソッドが必要なくなり、必要がないからです。Iterableをソートする方法
私CustomListに関するいくつかのより多くの情報に:
- すべてのメンバーが
- 最終的なもので、すべてのCustomListは別のCustomList
- である "サブリスト" を持つことができ、すべてのCustomListは正確に一つのMyThing
- を持たなければなりません例:AがMyThingのオブジェクトで、BがMyThingのオブジェクトであるとすると、Aのみを持つCustomList(AListと呼ぶ)と、ItemListとAListをSublistとして持つCustomListがあります。
- CustomListだから、これは私のクラスであるMyThings
の配列を取ることができますコンストラクタを持っています
public class CustomList implements Iterable<MyThing> {
private final CustomList sublist;
private final MyThing thing;
// getters and other methods
}
そして、私は
Comparator<MyThing>
MyThingあります
をpublic class MyThing {
private final IntArrayList values;
// more members and methods
}
私はCustomListsのCustomListとしてソートされたコピーを取得したいと思います(私のコンパイラが問題にならないようにしていれば、これまでの解決方法ですが)。
私がこれまで行ったこと次のとおりです。
- は、これが正常に動作しますが、そこにあれば、私は思っていたCustomList
に戻ってそれを転送リストに(コンパレータ付き)
「MyThing」とは何ですか?フィールドとプロパティは何ですか?あなたの選別基準は何ですか? –
コレクションを拡張する代わりにIterableを実装する理由を説明できますか? –
Guavaの 'Ordering'(' Comparator'を拡張しています)を使うと、['ordering.sortedCopy(iterable)'](http:// docs。guava-libraries.googlecode.com/git/javadoc/com/google/common/collect/Ordering.html#sortedCopy(java.lang.Iterable))。しかし、これは基本的にあなたがすでにやっていることです。 –