ArrayListは位置get(position)
でアイテムを取得する機能を提供し、LinkedHashTableは並べ替えを提供することを知っていますが、位置でアイテムを取得することはできません。だから、質問:機能を備えたJavaのジェネリックコレクションはありますか?
並べ替え
位置で取得
Key/Valueジェネリック型を提供します。
必要なジェネリックが存在する場合は、リストされている機能のコード例を教えてください。
ArrayListは位置get(position)
でアイテムを取得する機能を提供し、LinkedHashTableは並べ替えを提供することを知っていますが、位置でアイテムを取得することはできません。だから、質問:機能を備えたJavaのジェネリックコレクションはありますか?
並べ替え
位置で取得
Key/Valueジェネリック型を提供します。
必要なジェネリックが存在する場合は、リストされている機能のコード例を教えてください。
以前に物事を複雑にしすぎたことをお詫びします!
TreeMapを使用します。あなたがしたいとき
get(position)
次の手順を実行してください。
K key = treemap.getKeys().get(position)
V value = treemap.get(key);
==========================
以前からの私の古い複雑な間違った答え:
にcomparableを実装し、KにComparableが実装されているArrayList<Pair<K implements Comparable,V>>
場所を使用できます。次に、ArraylistでPair<K,V>
使用できます。Collections.sort(List<Pair<K,V>)
次に、Kで要素を取得できるようにを維持しHashMap<K,V>
ます。つまり、両方のデータ構造を更新することを忘れないでください。これは、要素を追加するO(N)を意味します:(。また、ロジックを単純化するために、HashMapとArrayListをオブジェクトにラップします。
public class Pair<K extends Comparable<K>, V> implements Comparable {
private final K first;
private final V second;
public Pair(K first, V second) {
this.first = first;
this.second = second;
}
public K getFirst() {
return first;
}
public V getSecond() {
return second;
}
public int compareTo(K other) ; // TODO
}