問題タブ [bag]

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 投票する
2 に答える
14571 参照

java - Java での配列としてのバッグの実装

プロジェクトのために、重複する可能性のある同種の値 (null を除く任意の Java オブジェクト) の順序付けされていないコレクションであるバッグ データ構造 (マルチセットとも呼ばれます) を実装することになっています。私はインターネットで広範な検索を行いましたが、List のようなものの代わりに配列を使用することに頭を悩ませており、クラスで配列を使用するための構文をよく理解していません。

UnsupportedOperationException をスローすることによって指摘されている場合を除いて、java.util.Collection のすべてを実装する必要があります。はい、配列を使用する必要があり、配列に追加すると、容量が 10 増加する必要あります。うまくいけば、私が追加した他のすべてもスムーズに実行されます. コメント ブロックに API 定義を含めました。どんな入力でも本当に役に立ちます。

マークが以下で尋ねたように、特定の要素を検索するためにバッグを検索する方法がわかりません。

0 投票する
18 に答える
398309 参照

java - Hibernate が MultipleBagFetchException をスローする - 複数のバッグを同時にフェッチすることはできない

Hibernate は、SessionFactory の作成中に次の例外をスローします。

org.hibernate.loader.MultipleBagFetchException: 複数のバッグを同時にフェッチすることはできません

これは私のテストケースです:

親.java

Child.java

この問題はどうですか?私に何ができる?


編集

OK、私が抱えている問題は、別の「親」エンティティが親の中にあることです。私の実際の動作は次のとおりです。

親.java

別の親.java

Hibernate は で 2 つのコレクションが好きではありませんFetchType.EAGERが、これはバグのようです。私は異常なことをしていません...

FetchType.EAGER問題から削除ParentまたはAnotherParent解決しますが、私はそれが必要なので、実際の解決策は@LazyCollection(LazyCollectionOption.FALSE)代わりに使用することです(解決策についてBozhoFetchTypeに感謝します)。

0 投票する
2 に答える
1387 参照

ruby - Rubyにバッグの実装はありますか?

バッグ コレクション (オブジェクトが挿入された回数をカウントするセットのようなコレクション) の実装はありますか?

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

.net - オブジェクトをバッグに入れたいのはなぜですか?

System.Collections.ConcurrentBag<T>クラスに関するSOの質問を見たばかりで、ASP.NETMVCのViewBagプロパティを見ましたController。私の経験では、人々がコードを書く際に何をしているのかを正確に理解していれば、人々のコードを使用する方が簡単であることを学びました。List<T>aまたはaDictionary<TKey,TValue>またはaが何を表すのかについては、かなり直感的だと思いますReadOnlyCollection<T>。一方、 ABagはそれほど直感的ではありません。

だから、私の質問は次のとおりです。特に.NET Frameworkに関して、このメタファーは何を表すことを意味しますか?Bag

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

nhibernate - NHibernateコレクションマッピング:更新ではなく削除と挿入

コレクションをマップして更新する方法がわかりません。私は2つのテーブルを持っています:

  • オブジェクト-3intの複合PKがあります
  • ObjectAliases-ObjectへのFKとNameへのnvarcharPKがあり、明らかにnameは一意です

オブジェクトには多くのエイリアスを含めることができますが、エイリアス名はオブジェクトごとに一意です。

したがって、オブジェクトにエイリアスをリストする必要があるので、次のようにしました。

私のマッピングは次のとおりです。

エイリアスリストからオブジェクトを問題なく作成および削除できます。Nhibernateは正常に挿入および削除します。しかし、どうすればエイリアスの名前を変更できますか?名前でエイリアスにFKがあり、エイリアスの名前を変更するときにNHibernateにsql UPDATEを実行させて、新しい名前を参照してすべてのFKでUPDATECASCADEを実行します。

私が行った場合:

NhibernateはUPDATEではなくINSERTを実行しようとします。どうすればUPDATEを実行できますか?

皆さん、ありがとうございました。

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

.net - NHibernateが主キーなしでテーブルを作成するのはなぜですか?

nHibernateのschemaExportクラスを使用してデータベースを作成します。これで、nhibernateマッピングを生成した属性を持つクラスができました。このクラスの一部は次のとおりです。

nHibernateマッピングの生成された部分は次のとおりです

このプロパティは、次の呼び出し時に作成される「CMS_PluginInstanceRouteParams」テーブルが正しいためです。

しかし、なぜこのテーブルに主キーがないのか疑問に思いました。生成された構造はデータベース構造

列ParamIdは、クラスPluginInstanceのテーブルへの外部キーであり、列Paramには、格納されているプロパティRouteParamsの値が正しく含まれています。

このテーブルに主キーは必要ありませんか?NHibernate.Mapping.Attributesを使用してこのプロパティに主キーを設定することは可能ですか?

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

nhibernate - NHibernate + 多対多 + バッグ + マッピング テーブル

私は次の3つのクラスを持っています。

transaction.Commit()メソッドを実行しようとすると、 session.SaveOrUpdate()forBusinessStreamの後、次のエラーが発生します。

("DBO"."BUS_STREAM_SCHEME_MAP"."BUS_STREAM_SCHEME_MAP_ID") に NULL を挿入できません

HBMファイル、

ビジネスストリーム

図式

BusinessStream_Scheme_Map

私は何を間違っていますか?

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

hibernate - NHibernate - 異なるプロパティに基づくコレクションを ID にマッピングする

次の表を検討してください。

次のようにマッピングされます。

Client を取得すると、Employee.Client = Client.Id である Employees のコレクションも取得します。偉大な。

これを考慮してください:

Employee.AlternativeClientId = Client.AlternativeId である従業員のコレクションを持つクライアントを返したいと思います。

キーノードは次のようになると思います。

しかし、それを超えて私は困惑しています。コレクションに適用できるフィルターはありますが、2 番目のバージョンの Employees のセットは最初のバージョンの Employees のサブセットではない可能性があるため、それは今後の方法ではないと思います。試してみましたが、行き止まりのようでした。ClientId = Client.Idを持つ従業員だけでなく、クエリを指定する方法はありますか?

(「理由」については、システムが異なればデータの見方が異なることに関係しています。)

0 投票する
6 に答える
939 参照

java - 初めてJavaインターフェイスを実装すると、コンパイルが成功しません

インターフェイスを使用してバッグデータ構造を実装する必要がありますjava.util.Collection。私はデータ構造の実際の実装について助けを求めていません。プログラムをコンパイルできません。実際にメソッドの実装を開始する前に、(メソッドの非機能シグネチャを使用して)インターフェイスの空白の実装をコンパイルするだけです。

コンパイラは、などのメソッドのパラメータでクラスEを見つけることができませんadd。のクラスを定義することになっていますEか、それともEが実際に何であるかについて理解していないことがありますか?コンパイラは、クラスコレクションが見つからないと言います(のようなメソッドのパラメータでaddAll)インポートしjava.util.Collectionますか、それとも他に知っておくべきことがありますか?コンパイラも何も知らclass Iteratorず、私も知らない。

これはおそらく初歩的なことだと思いますが、昨日はグーグルなどで何も見つかりませんでしたし、教授の講義はまったくプロジェクトに沿っていません。私はこれに迷っています。助けてくれてありがとう!

編集:また、私はこれについてあまり検索していませんが、誰かが「?」などの有用なことを教えてくれればpublic boolean addAll (Collection<? extends E> c) {}、それは大いにありがたいです。

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

string - 線形時間で文字列内のマルチセットのすべての組み合わせを見つける方法は?

サイズ m の文字のバッグB(マルチセット) とサイズ n の文字列テキスト S が与えられます。BS で (4!=24 の組み合わせ)によって作成できるすべての部分文字列を線形時間で見つけることは可能O(n)ですか?

例:

私が見つけた最速の解決策は、各キャラクターのカウンターを保持し、各ステップでそれをバッグと比較することです。したがって、ランタイムはO(n*m). 必要に応じてアルゴリズムを表示できます。