問題タブ [set]

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.

0 投票する
19 に答える
205134 参照

java - java.util.Set に get(int index) がないのはなぜですか?

java.util.Set正当な理由があると確信していますが、インターフェイスに がない理由get(int Index)、または同様のget()方法を誰かが説明してもらえますか?

セットは物を入れるのに最適なようですが、そこから単一のアイテムを取得するエレガントな方法が見つかりません.

最初のアイテムが必要なことがわかっている場合は、を使用できますset.iterator().next()が、それ以外の場合は、特定のインデックスでアイテムを取得するために配列にキャストする必要があるようです?

セットからデータを取得する適切な方法は何ですか? (イテレータを使用する以外)

それがAPIから除外されているという事実は、これを行わない正当な理由があることを意味していると確信しています.誰かが私を啓発してもらえますか?

編集: ここでいくつかの非常に優れた回答と、「より多くのコンテキスト」と言っているいくつか。具体的なシナリオは dbUnit テストで、クエリから返されたセットにはアイテムが 1 つしかないことを合理的に主張でき、そのアイテムにアクセスしようとしていました。

ただし、質問はより焦点を絞ったままであるため、シナリオがなくてもより有効です。

set と list の違いは何ですか

以下の素晴らしい回答に感謝します。

0 投票する
5 に答える
6798 参照

ruby - Ruby:順序を維持するSetのようなオブジェクトが必要

...または、重複エントリを防ぐ配列。

Rubyには次のようなオブジェクトがありますか?

  • []、[] =、<<に応答します
  • 重複するエントリをサイレントにドロップします
  • 列挙可能です(または少なくともfind_allをサポートします)
  • エントリが挿入された順序を保持します

私の知る限り、配列はポイント1、3、4をサポートしています。セットは1、2、3をサポートします(4はサポートしません)。そして、私のエントリは<=>を実装していないため、SortedSetは機能しません。

0 投票する
4 に答える
2868 参照

python - Python セット型を使用して ACL を実装する

現在、次のようなテーブルがありますPages, Groups, GroupPage, Users, UserGroup。pickled セットを使用すると、3 つのテーブルのみで同じことを実装できますPages, Groups, Users

setグループおよびパーミッション関連の操作はセットで非常に自然に表現できるため、ACL を実装するための自然な選択と思われます。許可/拒否リストをピクルセットとして保存すると、多対多関係の中間テーブルがほとんどなくなり、多くのデータベース操作なしで権限の編集が可能になります。

人間の可読性が重要な場合は、シリアル化に cPickle の代わりに json をいつでも使用できset、Python でアクセス許可リストを操作するときに使用できます。SQL を使用して権限を直接編集することはほとんどありません。それで、それは良いデザインアイデアですか?

SQLAlchemy を ORM として使用しているため、column で実装される可能性がありPickleTypeます。ピクルス化された「リソース」レコードセット全体を保存するつもりはなくset、「リソース」の主キー値から作成されたオブジェクトのみを保存する予定です。

0 投票する
8 に答える
13315 参照

python - 新しいインスタンス変数を追加して、Python セット クラスをサブクラス化する正しい (または最良の) 方法は何ですか?

セットとほぼ同じオブジェクトを実装していますが、追加のインスタンス変数が必要なため、組み込みのセット オブジェクトをサブクラス化しています。オブジェクトの 1 つがコピーされたときに、この変数の値が確実にコピーされるようにする最善の方法は何ですか?

古いセット モジュールを使用すると、次のコードは完全に機能しました。

しかし、これは組み込みの set モジュールを使用すると機能しません。

私が見ることができる唯一の解決策は、コピーされたセットオブジェクトを返すすべてのメソッドをオーバーライドすることです...その場合、セットオブジェクトをサブクラス化する必要はありません。確かにこれを行う標準的な方法はありますか?

(明確にするために、次のコードは機能しませ(アサーションは失敗します)。

)

0 投票する
5 に答える
2335 参照

c++ - オブジェクトがstd::setにあるかどうかの判断

オブジェクトがすでに。内に含まれているかどうかを判断しようとしていますstd::set。msdn(およびその他のソース)によると、set :: find関数はend()、要求した要素が見つからない場合に返されるはずです。

ただし、次のようなコードを実装すると、代わりにset::findjunk(0xbaadf00d)が返されます。

私はこれを正しく使用していますか?Visual C++2005で作業しています。

0 投票する
1 に答える
144 参照

vb.net - Linq、VBを使用した排他的セット構文

基準に基づいてセットの減算を行いたいのですが。疑似クエリは次のようになります。

私はここにそれを作ることができます:

そしてそこから私は何をすべきかわかりません。

0 投票する
1 に答える
4371 参照

c# - VB、C# で Linq を使用して匿名型を操作する

次のように 2 セットのタプルを作成するとします。

次に、これら 2 つのリストに対して集合演算を次のように実行します。

明らかに、Linq は、セットに統一された定義があることがわからない場合、セットに対してコンパレーターを実行できないため、次のビルド エラーが発生します。

Option Strict On は、'System.Collections.Generic.IEnumerable(Of < 匿名型>)' から 'System.Collections.Generic.IEnumerable(Of < 匿名型>)' への暗黙的な変換を禁止します。

これらのセットの宣言を使用してメッシュを作成するにはどうすればよいですか? (グーグルではあまり運がありません)

[編集] それでも同じコンパイル エラーが発生します。

エラーはここにあります:

Dim loTupleSetDifference = loTupleDatabaseTools.Except( loTupleToolObjects )

エラー 5 Option Strict On は、'System.Collections.Generic.IEnumerable(Of < 匿名型>)' から 'System.Collections.Generic.IEnumerable(Of < 匿名型>)' への暗黙的な変換を禁止します。

0 投票する
5 に答える
5715 参照

algorithm - Delphi セットから最高の価値を得るには?

セット内の最高値 (または最低値) を抽出する方法はありますか? たとえば、次の「バイトのセット」があるとします。

その上で実行して、結果として 199 を返すことができる関数はありますか?

編集: for..in ループを含む明らかなブルート フォース ソリューションがあります。可能であれば、それよりも良い方法を見つけたいと思います。

0 投票する
7 に答える
8752 参照

java - Set.removeAll() が下で使用するメソッド: equals または compareTo?

次のコードを検討してください。

私はこれをやろうとしています

equals メソッドが呼び出されていることがわかります。これは常に true ですか、それとも代わりに compareTo を呼び出す可能性がありますか?

0 投票する
3 に答える
165 参照

sql - T-SQL で同じセットに対して結合するアイテムを決定する

私はレポートを書いていますが、同じセットに参加するアイテムを見つける方法があるかどうか疑問に思っていましたか?

たとえば、次のクエリでは、同じ製品セットに結合するすべての領域を検索したいと考えています。

私が考えることができる現在の最善の解決策は、ProductIdのuniqueidentifiersを一緒にハッシュするカスタム集計を作成することでした(あるバイトに基づいて右にシフトし、それらを一緒にxorするなど)が、行く前にもっと簡単な方法があるかどうか尋ねると思いましたそれを通して。