[解決済み] オブジェクトの値が変わってもTreeSetのソートを維持する
2023-06-06 11:01:32
質問
Comparable<>を使用して「自然なソート順」を定義するオブジェクトを持っています。 これらはTreeSetsに格納されています。
オブジェクトを削除して再追加する以外に、ソート順を定義するために使用されているメンバーが更新されたときにソートを更新する他の方法はありますか?
どのように解決するのですか?
他の人が指摘したように、内蔵の方法はありません。しかし、いつでもその TreeSet をサブクラス化し、お好みのコンストラクタを使用して、必要な機能を追加することができます。
public class UpdateableTreeSet<T extends Updateable> extends TreeSet<T> {
// definition of updateable
interface Updateable{ void update(Object value); }
// constructors here
...
// 'update' method; returns false if removal fails or duplicate after update
public boolean update(T e, Object value) {
if (remove(e)) {
e.update(value);
return add(e);
} else {
return false;
}
}
}
これ以降は
((UpdateableTreeSet)mySet).update(anElement, aValue)
を呼び出して、ソートの値やソート自体を更新します。このため、追加の
update()
メソッドを実装する必要があります。
関連
-
mvn' は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
[解決済み] ScalaのSeqとListの違いについて
-
eclipse 実行 Java、エラー: 選択を起動できず、レシーバーもありません。
-
[解決済み] Javaで配列に特定の値が含まれているかどうかを判断するにはどうすればよいですか?
-
[解決済み] Javaで文字列値からenum値を取得する方法
-
[解決済み] 整数の平方根が整数であるかどうかを判断する最速の方法
-
[解決済み] 静的変数が悪とされるのはなぜですか?
-
[解決済み] Javaでリストを反復処理する方法
-
[解決済み] Javaで、オブジェクトの大きさを決定する最も良い方法は何ですか?
-
[解決済み】ハッシュセットとツリーセットの比較
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
XMLファイル操作時のjava.util.NoSuchElementExceptionを解決する方法。
-
undefined[sonar] sonar:デフォルトのスキャンルール
-
StringBuilderが投げるArrayIndexOutOfBoundsExceptionの探索
-
java マイクロソフト払い戻し予期せぬサーバーからのファイルの終了
-
XXX型を囲むインスタンスがJavaでアクセスできない
-
java send https request prompt java.security.cert.について。
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
Java JDKのダイナミックプロキシ(AOP)の使用と実装の原理分析
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
-
linux ant Resolve error: main class not found or couldn't be loaded org.apache.tools.ant.launcher.