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

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

5
Clojure:cons(seq)とconj(リスト)
私はそれconsがシーケンスをconj返し、コレクションを返すことを知っています。またconj、コレクションの最適な末尾にconsアイテムを「追加」し、常にアイテムを前面に「追加」することも知っています。この例は、これらの両方のポイントを示しています。 user=> (conj [1 2 3] 4) ; returns a collection [1 2 3 4] user=> (cons 4 [1 2 3]) ; returns a seq (4 1 2 3) ベクトル、マップ、およびセットの場合、これらの違いは私には理にかなっています。ただし、リストの場合は同じように見えます。 user=> (conj (list 3 2 1) 4) ; returns a list (4 3 2 1) user=> (cons 4 (list 3 …

6
Java:コレクション(ここではArrayList)を反復処理する最良の方法
今日、私はすでに何百回も使用したコードにたどり着いたとき、喜んでコーディングをしていました。 コレクションを反復処理する(ここではArrayList) 何らかの理由で、私は実際にEclipseのオートコンプリートオプションを見て、それが不思議に思いました。 次のループは他のループよりも使用に適していますか? 従来の配列インデックスループ: for (int i = 0; i < collection.length; i++) { type array_element = collection.get(index); } イテレーターhasNext()/ next(): for (Iterator iterator = collection.iterator(); iterator.hasNext();) { type type = (type) iterator.next(); } そして、私の好きなものはとても簡単に書くことができるからです: for (iterable_type iterable_element : collection) { }

10
Javaでの順序セットの実装はありますか?
誰かがObjective-Cに精通している場合NSOrderedSet、Setとして機能すると呼ばれるコレクションがあり、その項目にはArrayの項目としてアクセスできます。 Javaでこのようなものはありますか? と呼ばれるコレクションがあると聞いたことがありますがLinkedHashMap、セットのようなコレクションは見つかりませんでした。
98 java  collections  set 

5
Scalaのval-mutableとvar-immutableの比較
可変コレクションでvalを使用する場合と、不変コレクションでvarを使用する場合について、Scalaにガイドラインはありますか?それとも、不変のコレクションでvalを本当に目指すべきでしょうか? 両方の種類のコレクションがあるという事実は、私に多くの選択肢を与えてくれます、そして私はしばしばその選択をする方法を知りません。

7
Dictionary <TKey、TValue>エントリにコレクション初期化子を使用できますか?
コードの次のビットにコレクション初期化子を使用したいと思います。 public Dictionary&lt;int, string&gt; GetNames() { Dictionary&lt;int, string&gt; names = new Dictionary&lt;int, string&gt;(); names.Add(1, "Adam"); names.Add(2, "Bart"); names.Add(3, "Charlie"); return names; } したがって、通常は次のようになります。 return new Dictionary&lt;int, string&gt; { 1, "Adam", 2, "Bart" ... しかし、これの正しい構文は何ですか?

16
重複キーを許可するC#の並べ替え可能なコレクション
さまざまなオブジェクトがレポートに表示されるシーケンスを設定するプログラムを書いています。シーケンスは、ExcelスプレッドシートのY位置(セル)です。 コードのデモ部分は以下のとおりです。私が達成したいのは、コレクションを作成することです。これにより、複数のオブジェクトを追加でき、シーケンスに基づいてソートされたコレクションを取得できます。 SortedList list = new SortedList(); Header h = new Header(); h.XPos = 1; h.name = "Header_1"; list.Add(h.XPos, h); h = new Header(); h.XPos = 1; h.name = "Header_2"; list.Add(h.XPos, h); SortedListはこれを許可しないことを知っているので、代替を探していました。重複を排除したくないので、すでに試しましたList&lt;KeyValuePair&lt;int, object&gt;&gt;。 ありがとう。

11
要素の複数のコレクションを組み合わせるエレガントな方法?
それぞれに同じタイプのオブジェクトを含む任意の数のコレクションがあるとします(たとえば、List&lt;int&gt; fooおよびList&lt;int&gt; bar)。これらのコレクション自体がコレクション(例:タイプ)List&lt;List&lt;int&gt;&gt;である場合SelectMany、それらをすべて1つのコレクションに結合するために使用できます。 ただし、これらのコレクションがまだ同じコレクションにない場合は、次のようなメソッドを作成する必要があると思います。 public static IEnumerable&lt;T&gt; Combine&lt;T&gt;(params ICollection&lt;T&gt;[] toCombine) { return toCombine.SelectMany(x =&gt; x); } それから私はこのように呼びます: var combined = Combine(foo, bar); Combine上記のようなユーティリティメソッドを記述せずに、(任意の数の)コレクションを組み合わせる、クリーンでエレガントな方法はありますか?LINQでそれを行う方法があるべきであるほど十分に単純に思えますが、おそらくそうではありません。

5
Collections.sortがMergesortを使用し、Arrays.sortが使用しないのはなぜですか?
JDK-8(x64)を使用しています。Arrays.sort(プリミティブ)については、Javaのドキュメントで次のことがわかりました。 ソートアルゴリズムは、デュアルピボットであるクイックソートウラジミールYaroslavskiy、ジョン・ベントレー、とジョシュアBloch.`によって Collections.sort(オブジェクト)の場合、この「Timsort」を見つけました: この実装は、安定した適応可能な反復的なmergesortです...この実装は、指定されたリストを配列にダンプし、配列をソートし、リストを反復処理して、配列内の対応する位置から各要素をリセットします。 Collections.sort配列を使用している場合、なぜそれは単にArrays.sortデュアルピボットQuickSortを呼び出したり使用したりしないのですか?なぜ使うマージソートを?

10
プリミティブintのリストを作成しますか?
次のようにJavaでプリミティブintまたはプリミティブのリストを作成する方法はありますか? List&lt;int&gt; myList = new ArrayList&lt;int&gt;(); できるようです List myList = new ArrayList(); このリストに「int」を追加します。しかし、これは、このリストに何でも追加できることを意味します。 私の唯一のオプションは、intの配列を作成し、それをリストに変換するか、Integerオブジェクトのリストを作成することですか?



3
ライブラリーの充実パターンをScalaコレクションに適用するにはどうすればよいですか?
Scalaで利用できる最も強力なパターンの1つは、enrich-my-library *パターンです。これは、暗黙の変換を使用して、動的メソッド解決を必要とせずに既存のクラスにメソッドを追加するように見えます。たとえば、すべての文字列に、spaces空白文字の数をカウントするメソッドが必要な場合、次のことができます。 class SpaceCounter(s: String) { def spaces = s.count(_.isWhitespace) } implicit def string_counts_spaces(s: String) = new SpaceCounter(s) scala&gt; "How many spaces do I have?".spaces res1: Int = 5 残念ながら、このパターンはジェネリックコレクションを処理するときに問題に遭遇します。たとえば、コレクションでアイテムを順番にグループ化することについて、多くの質問がされています。ワンショットで機能するビルトインは何もないので、これは、ジェネリックコレクションCとジェネリックエレメントタイプを使用したrich-my-libraryパターンの理想的な候補のようですA。 class SequentiallyGroupingCollection[A, C[A] &lt;: Seq[A]](ca: C[A]) { def groupIdentical: C[C[A]] = { if (ca.isEmpty) C.empty[C[A]] else { val first = …


1
HashSet <T> .removeAllメソッドは驚くほど遅い
Jon Skeetは最近彼のブログで興味深いプログラミングトピックを取り上げました:「私の抽象化には、穴があります。 私はセットを持っています– HashSet実際、。いくつかのアイテムを削除したいのですが、アイテムの多くが存在しない可能性があります。実際、私たちのテストケースでは、「removals」コレクションの項目はいずれも元のセットには含まれません。これは、実際にコーディングが非常に簡単に聞こえます。結局のところ、私たちはSet&lt;T&gt;.removeAll私たちを助ける必要がありますよね? 「ソース」セットのサイズと「削除」コレクションのサイズをコマンドラインで指定し、両方をビルドします。ソースセットには負でない整数のみが含まれています。削除セットには負の整数のみが含まれています。を使用してすべての要素を削除するのにかかる時間を測定しますSystem.currentTimeMillis()。これは、世界で最も正確なストップウォッチではありませんが、この例では十分すぎるほどです。これがコードです: import java.util.*; public class Test { public static void main(String[] args) { int sourceSize = Integer.parseInt(args[0]); int removalsSize = Integer.parseInt(args[1]); Set&lt;Integer&gt; source = new HashSet&lt;Integer&gt;(); Collection&lt;Integer&gt; removals = new ArrayList&lt;Integer&gt;(); for (int i = 0; i &lt; sourceSize; i++) { source.add(i); } for (int i …

6
ストリームを使用してカスタムコンパレータを使用してTreeSetに収集する
Java 8で作業していると、TreeSet次のように定義されます。 private TreeSet&lt;PositionReport&gt; positionReports = new TreeSet&lt;&gt;(Comparator.comparingLong(PositionReport::getTimestamp)); PositionReport 次のように定義されたかなり単純なクラスです。 public static final class PositionReport implements Cloneable { private final long timestamp; private final Position position; public static PositionReport create(long timestamp, Position position) { return new PositionReport(timestamp, position); } private PositionReport(long timestamp, Position position) { this.timestamp = timestamp; this.position = …

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