問題タブ [collections]
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.
.net-3.5 - IEnumerable をローカライズする最良の方法は何ですか?
コレクション (IEnumerable) をローカライズする最良の方法は何ですか? BL から、まだローカライズする必要があるエンティティのコレクションを取得します。IEnumerable を拡張してローカライズされたリストを返すメソッドを作成することにしました。
下のコードを動作させるにはどうすればよいですか? 何か案は?多分より良いオプション?
.net - 「加算順序」で列挙し、キーを介して取得できる dotnet コレクション クラスのアイテムはどれですか?
列挙のために辞書に追加されたアイテムの順序を当てにすることはできないと私は信じています。
キーを使用してアイテムを追加でき、追加順に列挙できる、またはキーで取得できるクラス (可能であればジェネリック) はありますか?
明確化: キーの順序で列挙したくありません。追加順に列挙したい。つまり、FIFO (先入れ先出し) ベースで列挙を介してアイテムを取得できるようにしたいということです。
java - 「reduce」のタイプセーフなJava実装はありますか?
Itterable の要素を集約するために Java で reduce (コンテキストによっては foldl / foldr とも呼ばれます) を実行する必要があることがよくあります。
Reduce は collection/iterable/etc、2 つのパラメーターの関数、およびオプションの開始値 (実装の詳細に応じて) を取ります。この関数は、すべての要素が処理されるまで、コレクションの要素と前回の reduce 呼び出しの出力に連続して適用され、最終的な値を返します。
一般的なJava APIにreduceのタイプセーフな実装はありますか? Google Collectionsに は1 つあるはずですが、見つかりませんでした。(おそらく、他の名前を使用するかわからないためです。)
java - コレクションを繰り返し処理し、ループ内のオブジェクトを削除するときに ConcurrentModificationException を回避する
次の理由により、次のことができないことは誰もが知っていますConcurrentModificationException
。
しかし、これは明らかに時々機能しますが、常に機能するとは限りません。ここにいくつかの特定のコードがあります:
もちろん、これにより次の結果が得られます。
複数のスレッドがそれを行っていないにもかかわらず。ともかく。
この問題の最善の解決策は何ですか? この例外をスローせずにループ内のコレクションからアイテムを削除するにはどうすればよいですか?
また、ここでは任意のものを使用していますが、Collection
必ずしも ではないため、ArrayList
に依存することはできませんget
。
java - API Java 5 以降: 配列またはコレクションを返す必要がありますか?
Best Practices: Always return a ____, never a ____の精神で、JDK1.4.2 から JDK5 などへの今後の移行で同様の質問に直面します。(はい、知っています。JDK1.4.2 は EOL です! ;-) )。
コレクション (単純なプロパティ コレクションではない) を返す関数の場合、(JDK1.4.2 では) 一般的な List ではなく Array を返すことを常に好みます。
- 返される型を強制します(オブジェクトのリストの代わりに、「コンパイル」レベルのように、静的で
MyObject[]
よりタイプセーフです) - 返されたコレクションに「読み取り専用」文字を提案します (これは c# の「読み取り専用」キーワードほど厳密ではありませんが、コレクションに要素を追加するのはより複雑です)。これは、配列内の参照を変更できるため、「不変」であると言っているのと同じではありません...
もちろん、私は常にこの返された配列を作成します(「内部」配列は公開しません)。
現在、JDK5以降では、必要に応じて使用できますList<MyObject>
。
MyObject[]
List の代わりに返すことを選択する、またはCollection<MyObject>
java5 でコーディングする場合の正当な理由は何ですか?
ボーナスをCollection<MyObject>
使用する場合、次のことは可能ですか。
- 返されたコレクションに読み取り専用属性を適用しますか? (いいえ
add()
またはremove()
可能) - 返されたコレクションに不変の側面を強制しますか? (そのコレクションの参照も変更できません)
PS: JavaGenericFAQにはそれがまったくありませんでした。
.net - ジェネリック クラスのコレクションのベスト プラクティス
次のコードを検討してください。
SomeClassX<T> のコレクションが必要ですが、 SomeClassX<int> != SomeClassX<long> および List<SomeClassX<>> が許可されていないため、これは不可能です。
したがって、私の解決策は、 SomeClassX<T> にインターフェイスを実装させ、コレクションを次のように定義することです。ここで、ISomeClassX はインターフェイスです。
これはこれを行うための最良の方法ですか、それともより良い方法はありますか?
c# - C# で操作された QueryString を出力する
次のコードを使用すると、適切にフォーマットされた文字列が得られます。
&hello=worldµsoft=sucks のようなものが表示されます。
しかし、このコードを使用してコレクションを (同じ型の) 別のオブジェクトに複製すると、代わりに ToString() メソッドから Type() が返されます。
文字列を手動で調べて構築するよりも、出力するためのより適切な方法はありますか?
java - HashSetの問題-等しいとhashCodewithcontainsは、私が期待したものとは異なる動作をします
私は次のコードを持っています:
出力は次のとおりです。11HashSetを使用:1 1 0
ただし、最終行もtrue
(1)になると思っていました。私が行方不明になっている明らかな何かがありますか。
(はい、私のequals
方法とhashcode
方法はいくつかの問題を考慮に入れていないことを知っています...それらは意図的に単純ですが、そこにある問題がこの問題を引き起こしている場合は私に知らせてください。)
c# - .net 2 で一意のセットを生成する最速の方法は何ですか
私は本質的に名前と値のペアのギザギザの配列を持っています - これから一意の名前の値のセットを生成する必要があります。ジャグ配列は約 86,000 x 11 の値です。名前と値のペア (単一の文字列 "name=value" または KeyValuePair などの特殊なクラス) をどのように格納する必要があるかは問題ではありません。
追加情報: 40 の個別の名前と多数の個別の値があります。おそらく 10,000 の値の領域にあります。
私は C# と .NET 2.0 を使用しています (パフォーマンスが非常に悪いため、ジャグ配列全体を SQL データベースにプッシュし、そこから別の選択を行う方がよいのではないかと考えています)。
以下は、現在使用しているコードです。
c# - SortedList または SortedDictionary から i 番目の値を取得する
オブジェクトのソートされたコレクションがあります(SortedListまたはSortedDictionaryのいずれかです。主に読み取りに使用するため、追加のパフォーマンスはそれほど重要ではありません)。i 番目の値を取得するにはどうすればよいですか?
たとえば、コレクションに 1、2、3、4、5 の数字があり、中央値 (この例では 3) が必要な場合、どうすればよいでしょうか?