問題タブ [insertion-order]

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.

0 投票する
1 に答える
124 参照

java - map.values() メソッドから取得されたコレクションは挿入順序を保持しますか?

のインスタンスがありますLinkedHashMapLinkedHashMap挿入順序を保持します。このマップの値を取得する必要があり、同じ順序にする必要があります。したがって、values()thisLinkedHashMapでメソッドを呼び出すと、メソッドCollectionから取得しvalues()た は挿入順序を保証しますか?

0 投票する
2 に答える
1120 参照

list - Scala の不変リストに要素を追加する

Scala では、要素を不変リストに追加する方法は次のとおりです。

これが意味することは、最初に Nil (Empty) List を作成し、それに 2 を追加してから 1 を追加することです。つまり、これらの操作は右結合です。したがって、事実上、次のように、より明確な方法で書き直すことができます。

問題は、リストが挿入の順序を保持することになっていて、最初に空のリストに 2 が追加され、次に 1 が追加された場合、なぜ答えがそうでないのですl: List[Int] = List(2, 1)か??

0 投票する
2 に答える
448 参照

c++ - std:: vector 以外のランク保持データ構造?

私は、ランダム アクセス (または少なくとも O(n) よりも優れている) を備えたコンテナーを設計しなければならないアプリケーションに直面しています。 ) 挿入時に指定します。

たとえば、次の配列があるとします。

インデックス 2 で remove を呼び出して10 を削除できます。また、インデックス 1 で insert を呼び出して13 を挿入することもできます。

これらの 2 つの操作の後、次のようになります。

番号は順番に格納され、挿入/削除操作には、番号を挿入する場所または削除する番号を指定するためのインデックス パラメータが必要です。

私の質問は、Linked List とベクトル以外に、どのような種類のデータ構造がこのようなものを維持できるかということです。次に利用可能なインデックスを優先するヒープに傾いています。しかし、私はフュージョン ツリーが有用であることについて何かを見てきました (ただし、より理論的な意味で)。

メモリ消費を抑えながら、最適な実行時間を実現できるデータ構造はどのようなものでしょうか? ハッシュテーブルを保持する広告掲載順で遊んでいますが、これまでのところ成功していません。


std:: ベクトルをまっすぐに使用して放り投げる理由は、これらの基本的な操作に関してベクトルを実行するものを作成する必要があるためです。コンテナーのサイズは、数十万の要素に成長する可能性があるため、std::vector でシフトにコミットすることは問題外です。リンクされたリスト(二重にリンクされている場合でも)と同じ問題行があり、それを特定のインデックスにトラバースすると、最悪の場合 O (n/2) になり、O (n) に丸められます。

私は、Head、Tail、および Middle ポインターを含む 2 倍のリンク リストを考えていましたが、あまり良くないと感じました。

0 投票する
3 に答える
1051 参照

java - LinkedHashMap のコレクション (値) は挿入順序を保持しますか?

、、ペアをLinkedHashMap<String, Double> myMap追加した があるとしましょう。pair1pair2pair3

そして今、私は次のループを行います:

ループ内の最初のDoubleオブジェクトは の 1 つpair1でしょうか? そして2番目のpair2?それともそうである必要はありませんか?

似たようなプログラムで確認したところ、掲載順は守られているようですが、常にそうなるのでしょうか?

0 投票する
1 に答える
199 参照

c++ - 完全にバランスの取れたツリーの要素の順序

プログラムが要素をどのように挿入するかを視覚化するのに苦労しています。先生が教えてくれたコードは次のとおりです。

残念ながら、要素をツリーに配置する方法を理解して視覚化することはできません。私が理解できることから、再帰的に分割統治アルゴリズムを使用して配列を2つの部分に分割し、要素を追加しますが、どの要素がルートになるかわかりません。すべてが挿入された後にツリーがどのように見えるかを視覚化するのを手伝ってくれる人はいますか?