問題タブ [linkedhashset]
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.
swift - Swift の Java LinkedHashSet に相当するもの
Javaには次のものがあります。
と:
次に、項目をhashListに追加すると、値の重複は許可されず、リストは並べ替えられます。
だから私の質問は、Swiftでこれを行う方法ですか?!
私はすでに見ました 配列から重複した要素を削除する簡単な方法が Swift の API 内に存在しますか?
AutoComplete の配列を func uniq に渡すと、
(重複を削除するため:)
私はこれを持っています: タイプ AutoComplete の値にはメンバー要素がありません
オートコンプリート:
java - Arraylist を取得する方法List と LinkedHashSet を使用して Java の文字列から重複する値を削除した後
これは宿題、検索エンジンの一部です。文字列入力から重複した値を削除するクラスを作成しようとしています (入力はユーザーから取得され、テスト用にランダムな文字列を使用します)、トークン/単語を ArrayList に格納して、ストップ ワードの String[] と比較します(削除する言葉)。単語の順序を保持し、重複を削除したいので、List と LinkedHashSet を使用しています。重複した単語を削除して順序を維持しますが、単語をArrayListに保存することはできません。アイデアはありますか?
groovy - Agent で保護された値にメソッドを委譲すると、予期しない動作により Agent.send メソッドが 2 回スキップされる
私は小さなGroovyプロジェクトをやろうとしていて、ConcurrentLinkedHashSetが欲しかったのですが、Javaは提供していません。そこで、通常の LinkedHashSet を「保護」するために、Gpars エージェントを使用して独自の作成に着手しました。次に、エージェントを保持するラッパー クラスを作成し、クラスのメソッドをこのように内部エージェントに委任しました (このバージョンでは、委任アプローチとして methodMissing を使用しています)。Groovyのinterceptable/invokeMethodを試してみましたが、どちらかで動作させることができました
ただし、これを使用しようとすると、最初は機能し、文字列が追加されますが、同じ欠落しているメソッドでの 2 回目の呼び出しでは、agent.send 呼び出しは行われず、スキップされます。
したがって、私の単純なスクリプトのコンシューマは次のようになります
私の単純なトレースログは、コンソール出力で次のようになります
委譲の最初の試行でわかるように、「concHashSet methodMissing:」トレースを確認でき、エージェントは要素の追加を実行するために、エージェント内でそれに対して invokeMethod を呼び出します。
conhs.add ('col2') への 2 回目の呼び出しでは、agent.sand 呼び出しは発生しないため、余分なアイテムが追加されることはありません。
ConcurrentLinkedHashSet を作成する簡単な方法があると思っていたので、これは面倒ですが、コードは機能しません。適切な結果を得るためにどのメカニズムを使用できますか?
ご覧のとおり、invokeMethod (追加) を直接実行すると、Agent<LinkedHashSet>
問題なく動作します。私の実際の消費クラスでは、ConcurrentLinkedHashSet を通常の LinkedHashSet に置き換えると夢のように動作しますが、スレッドセーフではありません。これを機能させることに依存するスレッドセーフバージョンを作成したかったのです。
エージェントを置き換えて、LinkedHashSet の周りで同期ブロックを使用することもできると思いますが、少し醜いです。Gpars エージェントは、委任を伴うラッパーとしての一般的なソリューション パターンとして、これらすべてを整理してくれると思いました。
PS私は別のタックを試してみましたが、この種の作品は私が思うにうまくいきません.GroovyInterceptableを実装するクラスのinvokeMethodで@Synchroniseを使用して、委譲時にスレッドセーフな呼び出しを実現します。これが本当にスレッドセーフかどうかはわかりません。
android - set.addAll(myArrayList) はリストの項目を同じ順序で追加しません
set.addAll が注文を切り替えてリストを追加する理由がわかりません。(まだ私のセットは LinkedHashSet として宣言されています)
このコードは、SharedPreferences から Set-List を取得し、それを ArrayList に変換し、1 つの項目をリストに追加してから、リスト全体を Set に追加することに関するものです。
コードは次のようになります。
最初の 2 つの文字列は (私がデバッグしたように) 正しく追加されますが、3 番目の文字列は 2 番目の文字列と位置が切り替わります。
出力:
getSharedPrefSet 関数:
回避策
解決策の 1 つは、android で配列の共有設定を作成するコードを作成する方法で見つけることができますか?