1

私は を持っており、の各要素LinkedHashMap<String,Object>の部分を に入れる最も効率的な方法は何だろうと思っていました。StringLinkedHashMapJList

4

3 に答える 3

1

jList が元の Map の変更に影響されない場合は、使用した元の方法で問題ありません (追加の同期レイヤーを持つ Vector を使用するよりも優れています)。

マップが変更されたときに jList を変更したい場合は、独自の ListModel を作成する必要があります (それほど難しくありません)。また、マップがいつ変更されるかを知る方法を理解する必要があります。

于 2009-06-04T21:41:01.233 に答える
1

setListData(Vector)メソッドを使用することもできます。

jList1.setListData(new Vector<String>(map.keySet())); 

いずれのsetListData方法でも、実際のデータのコピーを作成しているため、マップへの変更はリストに反映されません。代わりにカスタムListModelを作成してメソッドに渡すこともできますが、インデックスによってsetModel任意の要素にアクセスする方法がないためLinkedHashMap、これはおそらく実行不可能です。

于 2009-06-04T21:50:16.817 に答える
0

質問に答えた直後にこの方法を見つけたので、コミュニティのためにここに投稿すると思いました。これが最も効率的な方法だと思いますが、他の提案も歓迎します。

jList1.setListData(LinkedHashMap.keySet().toArray());
于 2009-06-04T21:15:09.413 に答える