問題タブ [data-structures]
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.
xml - XML データを強力な Flex 型に変換する
私が取り組んでいるプロジェクトでは、Web サーバーから XML を取得し、そこからデータ ストアを構築します。データには特定のコア フィールドがありますが、拡張可能である必要があります。たとえば、追加のフィールドを追加したい場合があります。
Flex アプリでは、中央のデータ ストアが XML オブジェクトを操作したり、単にプロパティをオブジェクトに入れたりしたくありません。XML から作成/入力される Person クラスなどの強力な型が必要です。
これを柔軟な方法で行うにはどうすればよいでしょうか。属性名が一致する場合、Flex は XML から Person を自動的に構築できますか? または、 、 などの変換機能を記述する必要がありますか?
database - ファイルシステムに画像を保存する方法
現在、InnoDB テーブルに BLOB として保存されている画像 (最大 6MB) があります。データのサイズが大きくなるにつれて、毎晩のバックアップはますます遅くなり、通常のパフォーマンスが妨げられます。
そのため、バイナリ データはファイル システムに移動する必要があります。(ファイルへのポインタは DB に保持されます。)
データにはツリーのような関係があります。
ここで、データをディレクトリ構造全体に均等に分散させたいと考えています。どうすればこれを達成できますか?
MD5('userId, albumId, imageId');
結果の文字列をスライスして、ディレクトリ パスを取得できると思います。
これにより、最初の文字をサーバーにマップし、ディレクトリ構造を複数のサーバーに均等に分散できます。
ただし、これでは画像がユーザーごとに整理された状態に保たれず、1 つのアルバムの画像が複数のサーバーに分散される可能性があります。
私の質問は次のとおりです:
ユーザー/アルバム データを一緒に保ちながら、バランスの取れた方法で画像データをファイル システムに格納する最良の方法は何ですか?
私は正しい方向に考えていますか?それとも、これは物事を完全に行う間違った方法ですか?
更新:最高レベルで分割するため
の文字列スライスを行います。md5(user_id)
そして、すべてのユーザー データを同じバケットに入れます。これにより、ユーザー データを近くに保存しながら、データを均等に分散できます。
ディレクトリごとのアルバムの数を少なくするために、後ろから分割された albumId を使用すると思います (ただし、ほとんどのユーザーには必要ありません)。
ありがとう!
c++ - 配列を再割り当てできますが、なぜポインターを使用するのですか?
これは私が直面した就職面接でした。彼らは配列を再割り当てできるかどうか尋ねましたが、私はそう答えました。次に、彼らは尋ねました-そして、ほとんどの人がメモリスペースを浪費するという理由を挙げているので、なぜポインターが必要なのか. 納得のいく回答ができませんでした。満足のいく答えを出せる機関があれば、私はその義務を負います。上記のステートメントが矛盾する可能性がある状況について言及してください。
ありがとうございました。
c# - LINQ で順序を保持する
順序付き配列で LINQ to Objects 命令を使用します。配列の順序が変更されていないことを確認するために、どの操作を行うべきではありませんか?
c++ - C++ STL が「ツリー」コンテナを提供しないのはなぜですか?
C++ STL が「ツリー」コンテナを提供しないのはなぜですか? 代わりに使用するのに最適なものは何ですか?
パフォーマンス向上のためにツリーを使用するのではなく、オブジェクトの階層をツリーとして保存したい...
database-design - 1 つの次元内で範囲が重複しないデータ構造
1 つのディメンション内で重複しない範囲を格納できるデータ構造が必要です。次元の全範囲を完全にカバーする必要はありません。
例としては、会議室のスケジューラーがあります。次元は時間です。2 つのスケジュールが重複することはありません。会議室は常にスケジュールされているわけではありません。つまり、特定の時間に存在できるスケジュールは最大 1 つです。
簡単な解決策は、範囲に開始時刻と終了時刻を格納することです。
これは正規化されておらず、コンテナが重複しないようにする必要があります。隣接する 2 つの範囲の場合、前の終了は次の開始と冗長になります。
別のスキームでは、各範囲に 1 つの境界値を格納する必要があります。ただし、範囲の連続したシーケンスでは、範囲よりも 1 つ多くの境界値が常に存在します。これを回避するには、シーケンスを交互の境界値と範囲として表すことができます。
B = 境界値、r = 範囲
ぶんぶん
データ構造は次のようになります。
本質的に、これは交互の型を持つ二重連結リストです。
最終的には、使用するデータ構造が何であれ、メモリ (アプリケーション コード) とリレーショナル データベースの両方で表現されます。
学術的または業界が試みたソリューションが存在することに興味があります。
c# - C# データ構造を SQL データベースに格納する
私は ASP.NET と SQL サーバーの世界に慣れていないので、私の無知を許してください...
C# にデータ構造がある場合 (たとえば、文字列を格納するベクトルなど)、ベクトルの内容をそのまま SQL テーブルに格納することはできますか? 要素ごとに構築する必要なく、そのデータをできるだけ早くベクトル形式に変換できるように、これを行いたいと考えています。バイナリ データをファイルに書き込み、それを読み取り、C で割り当てられた構造体にコピーするのとほとんど同じです。
フィールドが VARBINARY(MAX) として定義されている SQL Server 2008 でテーブルを作成しました。そこから始めようと思いました。
誰かが、たとえば10個の文字列のベクトルをそのフィールドに格納および取得する方法の例を教えてもらえますか? これは可能ですか(理由がわかりません)?
ありがとう!
perl - データ構造の反復可能な署名を作成するにはどうすればよいですか?
データ構造の署名を作成したい状況があります。
目的は、データ構造が変更された場合に署名も変更する必要があることです。
これを行う確立された方法はありますか?
java - JavaでLRUキャッシュをどのように実装しますか?
EHCacheやOSCacheなどとは言わないでください。この質問の目的のために、SDKだけを使用して自分で実装したいとします(実行して学習します)。キャッシュがマルチスレッド環境で使用されるとすると、どのデータ構造を使用しますか?LinkedHashMapとCollections#synchronizedMapを使用して既に実装しましたが、新しい同時コレクションのいずれかがより適切な候補になるかどうか知りたいです。
更新:このナゲットを見つけたとき、私はYeggeの最新情報を読んでいました:
一定時間のアクセスが必要で、挿入順序を維持したい場合は、本当に素晴らしいデータ構造であるLinkedHashMapよりも優れた方法はありません。それがおそらくもっと素晴らしいかもしれない唯一の方法は、同時バージョンがあったかどうかです。しかし悲しいかな。
上記のLinkedHashMap
+実装を使用する前は、ほぼ同じことを考えていました。Collections#synchronizedMap
私が何かを見落としていたのではないことを知ってうれしいです。
これまでの回答に基づくと、並行性の高いLRUに対する私の最善の策は、を使用するのと同じロジックのいくつかを使用してConcurrentHashMapLinkedHashMap
を拡張することであるように思われます。
php - PHP/MySQL 用の Entity Attribute Value (EAV) フレームワークはありますか?
PHP/MySQL 用のエンティティ属性値フレームワークはありますか? 私は自分で書き始めていますが、すでに終わっているように感じます。助言がありますか?