タグ付けされた質問 「collections」

コレクションAPIは、オブジェクトのコレクションの処理を容易にする一連のクラスとインターフェースを開発者に提供します。

8
スレッドセーフな辞書を実装する最良の方法は何ですか?
IDictionaryから派生させ、プライベートSyncRootオブジェクトを定義することで、C#でスレッドセーフなディクショナリを実装できました。 public class SafeDictionary<TKey, TValue>: IDictionary<TKey, TValue> { private readonly object syncRoot = new object(); private Dictionary<TKey, TValue> d = new Dictionary<TKey, TValue>(); public object SyncRoot { get { return syncRoot; } } public void Add(TKey key, TValue value) { lock (syncRoot) { d.Add(key, value); } } // more IDictionary …

15
HashMapのビルダー
Guavaは、Java型の優れたファクトリメソッドを提供していMaps.newHashMap()ます。 しかし、Java Mapsのビルダーもあるのでしょうか? HashMap<String,Integer> m = Maps.BuildHashMap. put("a",1). put("b",2). build();
109 java  collections  guava 

8
コレクションへのAddRange
同僚から本日、コレクションに範囲を追加する方法を尋ねられました。彼はから継承するクラスを持っていCollection<T>ます。そのタイプのget-onlyプロパティがあり、すでにいくつかのアイテムが含まれています。別のコレクションのアイテムをプロパティコレクションに追加したいと考えています。どのようにしてC#3フレンドリーな方法でこれを行うことができますか (取得専用プロパティに関する制約に注意してください。これにより、Unionの実行や再割り当てなどの解決策が妨げられます。) 確かに、プロパティのforeachです。追加は機能します。ただし、- List<T>スタイルのAddRangeの方がはるかにエレガントです。 拡張メソッドを書くのは簡単です: public static class CollectionHelpers { public static void AddRange<T>(this ICollection<T> destination, IEnumerable<T> source) { foreach (T item in source) { destination.Add(item); } } } でも、ホイールを再発明しているような気がします。System.Linqまたはmorelinqで類似するものは見つかりませんでした。 悪いデザイン?追加を呼び出すだけですか?明らかなものがない?


8
宣言するのと同じ行でC#リストを初期化するにはどうすればよいですか。(IEnumerable文字列コレクションの例)
私はテストコードを書いていますが、書きたくありません: List<string> nameslist = new List<string>(); nameslist.Add("one"); nameslist.Add("two"); nameslist.Add("three"); 書きたい List<string> nameslist = new List<string>({"one", "two", "three"}); ただし、{"one"、 "two"、 "three"}は、「IEnumerable string Collection」ではありません。IEnumerable文字列コレクションを使用して、これを1行でどのように初期化できますか?」

8
Groovyのリストからマップを作成するためのショートカット?
私はこれのためにいくつかの並べ替えをお願いします: Map rowToMap(row) { def rowMap = [:]; row.columns.each{ rowMap[it.name] = it.val } return rowMap; } GDKのものと同じように、私は次のようなことができると期待しています: Map rowToMap(row) { row.columns.collectMap{ [it.name,it.val] } } しかし、ドキュメントで何も見ていません...何か不足していますか?それとも私はあまりにも怠惰ですか?



22
List <Integer>からList <String>への変換
整数のリストがあり、List&lt;Integer&gt;すべての整数オブジェクトを文字列に変換して、新しいで仕上げたいと思いますList&lt;String&gt;。 当然のことながら、新しい整数を作成List&lt;String&gt;してリストをループすることで新しいループを作成することもできましたString.valueOf()が、それを行うためのより良い(より自動化された)方法があるかどうか疑問に思っていましたか?

6
JavaScriptオブジェクトの要素数
JavaScriptオブジェクトの要素の数を(どこかから)取得する方法はありますか?(つまり、一定時間の複雑さ)。 その情報を取得するプロパティまたはメソッドが見つかりません。これまでのところ、コレクション全体を反復処理することしか考えられませんが、それは線形時間です。 オブジェクトのサイズに直接アクセスできないのは奇妙なことです。 編集: 私はObjectオブジェクトについて話している(一般的なオブジェクトではない): var obj = new Object ;



1
Collections.sortがクイックソートではなくマージソートを使用するのはなぜですか?
クイックソートが最速のソートアルゴリズムであることはわかっています。 JDK6 collections.sortは、クイックソートではなくマージソートアルゴリズムを使用します。ただし、Arrays.sortはクイックソートアルゴリズムを使用します。 Collections.sortがクイックソートではなくマージソートを使用する理由は何ですか?

1
JavaのAbstractListのremoveRange()メソッドが保護されているのはなぜですか?
誰もが何か考えを持っていますか、なぜAbstractListの(そしてArrayListの)removeRangeメソッドがなぜprotectedですか?非常に明確に定義された便利な操作のように見えますが、それでも、それを使用するには、List実装をサブクラス化する必要があります。 隠された根拠はありますか?私にはかなり不可解なようです。

7
C#の双方向1対1辞書
私は、C#(2)の一般的な双方向1対1辞書クラスを探しています。BiDictionaryOneToOne&lt;T, S&gt;のみ各値と鍵(RefEqualsまでとにかく)のいずれかを含む、いずれかのキーまたは値を使用して検索することができることが保証されています。誰でも知っていますか、それとも自分で実装する必要がありますか?私がこれを必要とする最初の人だとは信じられません... この質問に対する回答にはBiDictionaryがありますが、これは一意の要素に対するものではありません(また、RemoveByFirst(T t)またはRemoveBySecond(S s)も実装していません)。 ありがとう!
98 c#  .net  collections 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.