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

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

9
コレクションまたはストリームを返す必要がありますか?
メンバーリストに読み取り専用ビューを返すメソッドがあるとします。 class Team { private List < Player > players = new ArrayList < > (); // ... public List < Player > getPlayers() { return Collections.unmodifiableList(players); } } さらに、クライアントが行うことはすべて、リストを1回、即座に繰り返すことであると想定します。プレーヤーをJListか何かに入れるかもしれません。クライアントは後の検査のためにリストへの参照を保存しません! この一般的なシナリオでは、代わりにストリームを返す必要がありますか? public Stream < Player > getPlayers() { return players.stream(); } または、Javaで非慣用的なストリームを返していますか?ストリームは、それが作成された同じ式内で常に「終了」するように設計されていましたか?

19
2つのコレクション内のアイテムの順序に関係なく、等しいかどうかを比較する
2つのコレクションを(C#で)比較したいのですが、これを効率的に実装するための最良の方法がわかりません。 Enumerable.SequenceEqualに関する他のスレッドを読みましたが、私が探しているものとは異なります。 私の場合、2つのコレクションに同じアイテムが含まれている場合(順序に関係なく)、2つのコレクションは等しくなります。 例: collection1 = {1, 2, 3, 4}; collection2 = {2, 4, 1, 3}; collection1 == collection2; // true 私が通常行うことは、1つのコレクションの各アイテムをループして他のコレクションに存在するかどうかを確認し、次に他のコレクションの各アイテムをループして最初のコレクションに存在するかどうかを確認することです。(長さを比較することから始めます)。 if (collection1.Count != collection2.Count) return false; // the collections are not equal foreach (Item item in collection1) { if (!collection2.Contains(item)) return false; // the collections are not equal …

8
Collection <T>とList <T>では、インターフェイスで何を使用する必要がありますか?
コードは次のようになります。 namespace Test { public interface IMyClass { List&lt;IMyClass&gt; GetList(); } public class MyClass : IMyClass { public List&lt;IMyClass&gt; GetList() { return new List&lt;IMyClass&gt;(); } } } コード分​​析を実行すると、次の推奨事項が表示されます。 警告3 CA1002:Microsoft.Design: 'IMyClass.GetList()'の 'List'を、Collection、ReadOnlyCollection、またはKeyedCollectionを使用するように変更します これをどのように修正すればよいですか?ここでの良い習慣は何ですか?

20
Javaでソートされたコレクション
私はJavaの初心者です。Javaでソートされたリストを維持するために使用できる/使用すべきコレクションを提案してください。私が試してみましたMapとSet、彼らは私が探していたものではありませんでした。

5
JavaでArrayListをすべてゼロで初期化するにはどうすればよいですか?
arraylistプレサイジングの仕事をしていないようです: // presizing ArrayList&lt;Integer&gt; list = new ArrayList&lt;Integer&gt;(60); その後、私がそれにアクセスしようとすると: list.get(5) 0を返す代わりに、IndexOutOfBoundsException:インデックス5が長さ0の範囲外をスローします。 すべての要素をC ++のように正確なサイズの0に初期化する方法はありますか?
161 java  collections 




22
IEnumerableがnullまたは空かどうかを確認する方法
私はstring.IsNullOrEmpty方法が大好きです。IEnumerableに同じ機能を許可するものが欲しいです。そのようなものはありますか?たぶんコレクションヘルパークラス?私が尋ねる理由は、ifステートメントでは、パターンがそうだとコードが乱雑に見えるからです(mylist != null &amp;&amp; mylist.Any())。持つ方がはるかにクリーンになりますFoo.IsAny(myList)。 この投稿はその答えを与えません:IEnumerableは空ですか?。


3
C#で同等のJava Map
選択したキーでコレクション内のアイテムのリストを保持しようとしています。Javaでは、次のようにMapを使用します。 class Test { Map&lt;Integer,String&gt; entities; public String getEntity(Integer code) { return this.entities.get(code); } } これをC#で行う同等の方法はありますか? System.Collections.Generic.Hashsetハッシュを使用せず、カスタムタイプキーを定義できませ System.Collections.Hashtableん。ジェネリッククラスに System.Collections.Generic.Dictionaryはget(Key)メソッドがありません。
150 c#  java  generics  collections 

4
別のリストIDからリストを並べ替える
私はこのようないくつかの識別子を持つリストを持っています: List&lt;long&gt; docIds = new List&lt;long&gt;() { 6, 1, 4, 7, 2 }; Morover、私は&lt;T&gt;上記のIDで表されるアイテムの別のリストを持っています。 List&lt;T&gt; docs = GetDocsFromDb(...) 両方のコレクションで同じ順序を維持する必要があるため、のアイテムList&lt;T&gt;は最初のアイテムと同じ位置になければなりません(検索エンジンのスコアリングの理由により)。そして、このプロセスはGetDocsFromDb()関数内では実行できません。 必要に応じて、2番目のリストを他の構造(Dictionary&lt;long, T&gt;たとえば)に変更することは可能ですが、変更しない方がよいでしょう。 LINQを使用してこの「いくつかのIDに応じた順序付け」を行う簡単で効率的な方法はありますか?
150 c#  linq  sorting  collections 

5
Hamcrestでリストが空でないことを確認する
誰もがリストを使用して空であるかどうかを確認する方法を知っていた場合、私は思っていたassertThat()とMatchers? 私がJUnitを使用するのを見ることができる最良の方法: assertFalse(list.isEmpty()); しかし、私はこれをハムクレストで行う方法があることを望んでいました。


9
Java MapがCollectionを拡張しないのはなぜですか?
ないことに驚いMap&lt;?,?&gt;たCollection&lt;?&gt;。 それがそのように宣言されていれば、それは意味のあることだと思いました。 public interface Map&lt;K,V&gt; extends Collection&lt;Map.Entry&lt;K,V&gt;&gt; 結局のところ、Map&lt;K,V&gt;はのコレクションMap.Entry&lt;K,V&gt;ですよね。 それがそのように実装されていない理由はありますか? 最も権威のある答えをCletusのおかげで、私はまだ、なぜ、あなたはすでに見ることができた場合に思ったんだけどMap&lt;K,V&gt;としてSet&lt;Map.Entries&lt;K,V&gt;&gt;(経由entrySet())、それだけではなく、そのインタフェースを拡張しません。 a Mapがの場合Collection、要素は何ですか?唯一の合理的な答えは「キーと値のペア」です まさに、interface Map&lt;K,V&gt; extends Set&lt;Map.Entry&lt;K,V&gt;&gt;素晴らしいでしょう! しかし、これは非常に限られた(そして特に有用ではない)Map抽象化を提供します。 しかし、その場合は、なぜentrySetインターフェースによって指定されるのでしょうか。それはどういうわけか有用であるに違いありません(そして私はその立場について議論するのは簡単だと思います!)。 特定のキーがどの値にマップされているかを確認したり、特定のキーのエントリを削除したりすることはできません。 それがすべてであると言っているわけではありませんMap!それは他のすべてのメソッドを保持でき、保持する必要があります(ただしentrySet、現在は冗長です)。
146 java  oop  collections 

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