如何将 LinkedHashMap 的键添加到 JList 中?
-
11-09-2019 - |
题
我有一个 LinkedHashMap<String,Object>
并想知道最有效的方法是什么 String
中每个元素的部分 LinkedHashMap
变成一个 JList
.
解决方案
您还可以使用 设置列表数据(向量) 方法:
jList1.setListData(new Vector<String>(map.keySet()));
与每一个 setListData
方法,您正在复制实际数据,因此对地图的更改不会反映在列表中。您可以改为创建一个自定义 ListModel
并将其传递给 setModel
方法代替,但是因为没有办法访问 a 的任意元素 LinkedHashMap
从索引来看,这可能是不可行的。
其他提示
如果所述的jList不是原始地图的变化是敏感的,则使用的原始方法是细(比使用向量,其具有sychronization的额外层更好)。
如果您想要的jList改变时,地图上的变化,那么你将不得不写自己的ListModel(这并不难)。你还必须弄清楚如何知道地图发生变化时。
发现这个办法做到这一点就在我回答这个问题,以为我会把它在这里的社区。我认为这是把它做的最有效的方式,但我肯定是开放的更多建议。
jList1.setListData(LinkedHashMap.keySet().toArray());
不隶属于 StackOverflow