我有一个LinkedHashMap<String,Object>
,并想知道将String
中每个元素的LinkedHashMap
部分放入JList
的最有效方法是什么。
答案 0 :(得分:1)
如果jList对原始Map的更改不敏感,那么您使用的原始方法就可以了(比使用Vector更好,它具有额外的同步层)。
如果您希望在地图更改时更改jList,则必须编写自己的ListModel(这并不难)。您还必须弄清楚如何知道地图何时发生变化。
答案 1 :(得分:1)
您还可以使用setListData(Vector)方法:
jList1.setListData(new Vector<String>(map.keySet()));
使用每个setListData
方法,您将复制实际数据,因此对地图的更改不会反映在列表中。您可以改为创建自定义ListModel
并将其传递给setModel
方法,但由于无法通过索引访问LinkedHashMap
的任意元素,因此这可能是不可行的。
答案 2 :(得分:0)
在我回答问题之后就找到了这种方式,我想我会把它放在这里为社区做准备。我认为这是完成任务的最有效方式,但我肯定会接受更多建议。
jList1.setListData(LinkedHashMap.keySet().toArray());