ハッシュマップを使用して選択したチェックボックスを保存する JSF テーブルがあります。私の質問は: ハッシュマップの代わりに 2D Java 配列を使用してキーを格納することは可能ですか?
EDIT
このコードを使用して、選択したキーを保存します。このコードをどのように書き換えることができますMap
か?
private HashMap<String, Boolean> selected = new HashMap<>();
// send the list
public Map<String, Boolean> getselected() {
return selected;
}
私の考えは、ページ数とページ上のリストを格納する2D配列(MAPを使用します)を作成することです。たとえば、100 ページ x 10 キー。
編集2
Oracleからデータを取得する遅延ロードを使用してJSFテーブルを作成しました。JSF は非常にうまく高速に動作します。私が直面している問題は、select all
すべてのケイを取り、キーを に格納するチェックボックスを作成しようとしたときhashmap
です。後でこれらのキーは SQL クエリで使用され、ユーザーが選択した行を削除します。10,000 行のデータベース テーブルを作成し、それらを JSF テーブルに表示しました。10 000 で作成したものすべてをクリックするhashmap
と、そのサイズのパフォーマンスは比較的良好です。私はそれらを削除するためにテストしhashmap
ましたhashmap
. これは表示ですが、いくつかのコードの最適化を行うことができます。大きな問題はスケーラビリティです。私はhashmap
1 000 000 キーで - 動作しますが、非常に遅いです。非常に大きなデータを処理するために JSF テーブルを設計する必要があります。解決策は2D配列を使用することだと思います(この例ではそれを呼び出しましょう)。私の考えを次のように説明します。たとえば、100 ページの JSF テーブルがあります。各ページには 10 行が含まれます。標準hashmap
では、すべての行を選択すると 1000 個のキーがあります。2D 配列ソリューションでは、100 個の要素を持つ配列を作成できます。ページを切り替えると、ページネーション コードから生成される行は 10 行しかありません。すべてのデータベース行を選択すると、表示されている行キーのみを 2D 配列に挿入できます。たとえば、私が置き換える配列への他の位置1
何かがあることを知るために。削除ボタンを押すと、Java コードはすべての要素が「仮想的に」選択されていることを認識します。より良い、より簡単な解決策はありますか?