問題タブ [treeset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - TreeSetでの順序付けられた操作の時間計算量はどれくらいですか?
次の操作の時間計算量はjava.util.TreeSet
どれくらいですか?
first()
last()
lower()
higher()
これらは一定の時間であると思いますが、APIは保証しません。
java - TreeSetの一部を効率的にファイルに保存するにはどうすればよいですか?そしてそれをリロードしますか?(Javaの質問)
私はTreeSetを使用していくつかの情報を格納しているので、ある順序に従って並べ替えられます。
TreeSetが非常に大きくなった場合(> 1GB)、TreeSet内の最小の要素をファイルに保存して、RAMを解放したいと思います。その後、空きRAMが増えたら、これらの要素をメモリにリロードして処理できるようにしたいと思います。
私の質問は、TreeSetの一部をファイルに保存し、後でメモリに復元する 効率的な方法はありますか?
要素をメモリにリロードすると、新しいTreeSetの一部または同じTreeSetに含まれる可能性があることに注意してください。
これを行う方法についてのアイデアをありがとう!
java - 次のツリーマップをソートできません
出力:
このコードは double 値をソートできるはずです。ただし、出力は一番上に表示されます。何が起きましたか ?
scala - 自分自身を繰り返さずにScalaでTreeSetの注文を割り当てる方法
順序を定義してTreeSetに適用するScalaコードのこのセグメントがあります。この部分は正常にコンパイルされます。
コードの他の場所で、以前の順序に基づいて、セットの最初の要素を取得したい(そして、最初の要素が必要なものを生成しない場合は、後で後続の要素を取得したい)。指定。次のように動作すると思いましたが、コンパイルされませんでした。
エラーは"could not find implicit value for parameter cmp: Ordering[Account]"
ただし、最小値を要求するときに順序付けオブジェクトを再度指定すると、次のようにコンパイルされます。
構築時に指定した順序が自動的に使用され、セットに追加するときに段階的に並べ替えられると思ったので、を呼び出すときに順序を再度指定する必要はありませんmin
。
私は何が間違っているのですか?どこかで陰関数を明示的に定義する必要がありますか?
java - 二分探索を使用してTreeSetから要素を返す
TreeSetには、要素がセットに含まれている場合にtrueを返すcontainsというメソッドがあります。この方法は二分探索を使用し、すべての要素を昇順で反復するわけではないと思います。私は正しいですか?
同じクラスの他のオブジェクトと区別するために2つのStringインスタンス変数を使用するクラスのオブジェクトを含むTreeSetがあります。オブジェクトの2つのインスタンス変数(もちろんgetメソッドを使用)を他の2つのString変数と比較し、それらが等しい場合は要素を返すことで、TreeSetを検索するメソッドを作成できるようにしたいと思います。インスタンス変数が右側のサブツリーの最初の要素に移動するよりも少ない場合、または左側のサブツリーなどでより多くの検索が行われる場合。これを行う方法はありますか?
オブジェクトをArrayListに格納し、バイナリ検索を使用してオブジェクトを見つけることができることはわかっていますが、これはTreeSetを検索するほど速くはありません。
java - java: 重複を削除するためのコンパレータとツリーセット
私はこのようなJavaクラスを持っています
およびこのクラスのオブジェクトのリスト、同じフィールド1または同じフィールド2を持つすべての重複要素をこのリストから削除したいので、2つのコンパレーターがあります
タスクを実行するには、ツリーセットを次のように使用します
しかし、1つのコンパレータと1つのツリーセットだけを使用して同じことを行うにはどうすればよいですか?
助けてくれてありがとう
アップデート:
回答ありがとうございますが、それらを読んだ後、これが実際の問題に対する正しいアプローチであるかどうかわかりません。
私の実際のケースでは、field1 は電話番号のようなもので、field2 は名前のようなものです。したがって、同じ電話番号に複数回電話をかけたくありません (これは重複を削除する最初のツリーセットです)。同じ名前で複数回電話をかけたくありません (重複を削除する 2 番目のツリーセット)。
クラスを変更できますが、このアプローチで実際の問題を解決できるかどうかを知りたいです。
このアプローチが正しい場合、あなたの質問から、クラスを変更せずにコンパレータを1つだけ使用することはできないことがわかります
ありがとう
java - ファイルの単語リストをチェックする最も効率的な方法
すべての Java キーワードを HashSet に追加するという宿題がありました。次に、.java ファイルを読み込み、キーワードが .java ファイルに出現した回数を数えます。
私が取ったルートは次のとおりです。すべてのキーワードを含む String[] 配列を作成しました。HashSet を作成し、Collections.addAll を使用して配列を HashSet に追加しました。次に、テキスト ファイルを繰り返し処理しながら、HashSet.contains(currentWordFromFile); でチェックします。
これを行うために HashTable を使用することを誰かが推奨しました。次に、TreeSet を使用した同様の例を見ました。私はただ興味がありました..これを行うための推奨される方法は何ですか?
(完全なコードはこちら: http://pastebin.com/GdDmCWj0 )
java - javaTreeSet-重複するアイテムを削除しない
TreeSetは、同じComprator値を持つさまざまなアイテムを削除します。削除したくない。これを制御する方法はありますか?または、別のコンテナクラスを使用しますか?
追加:OK。セットが使えないようです。パフォーマンスを考慮して、挿入ソート機能が必要です。リストはこれを行うことができますか?皆さんありがとう。
java - ツリーセット内の要素へのアクセス
私はここでいくつかの非常に基本的な Java を試しており、頭を悩ませています。基本的に、ファイルから何らかの要素を読み取り、それらを並べ替え、重複を排除してから、最初の 3 つの要素を返す必要があります。TreeSet は、並べ替えを行って重複を削除するので、完璧に適合するように思えました。私の問題は、最初の 3 つの要素のみを返す方法について混乱していることです。イテレータは、セット全体を実行しているようです。手動の反復子を使用して while ループを作成し、反復子ループを保持する while ループを含めることは、混乱を招き、成功する可能性が低いようです。最初の 3 つの要素にアクセスできるように、ツリーセットを繰り返し処理し、各要素を配列リストに配置する必要があるという答えはここにありますか? つまり、これは機能するようですが、非常に複雑に思えます。
java - カスタム文字列長比較器: 私の間違いは何ですか?
オブジェクトの name(String) 変数を長さで並べ替えるカスタム コンパレータを定義しました。
私の人物クラスのコードは次のとおりです。
次に、メインメソッドで呼び出しCollections.sort(personList, new MyNameLengthCompare);
てから、それを TreeSet に追加しましたmyTreeSet.addAll(personList)
しかし、名前の長さでソートされていません:(