如何将 LinkedHashMap 的键添加到 JList 中?
我有一个 LinkedHashMapLinkedHashMap
中每个元素的 String
部分放入其中的最有效方法是什么一个JList
。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我有一个 LinkedHashMapLinkedHashMap
中每个元素的 String
部分放入其中的最有效方法是什么一个JList
。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
您还可以使用 setListData(Vector) 方法:
使用每个
setListData
方法,您都会复制实际数据,因此对地图的更改不会反映在列表中。 您可以改为创建自定义ListModel
并将其传递给
setModel
方法,但由于无法通过索引访问LinkedHashMap
的任意元素,这可能是不可行的。You could also use the setListData(Vector) method:
With each of the
setListData
methods, you're making a copy of the actual data, so changes to the map will not be reflected in the list. You could instead create a customListModel
and pass it to thesetModel
method instead, but because there is no way to access an arbitrary element of aLinkedHashMap
by index, this is probably infeasible.如果jList对原始Map的变化不敏感,那么您使用的原始方法就可以(比使用Vector更好,Vector有额外的同步层)。
如果您希望 jList 在地图更改时也更改,那么您必须编写自己的 ListModel (这并不难)。 您还必须弄清楚如何知道地图何时发生变化。
If the jList is not sensitive to changes of the original Map, the original method you used is fine (better than using Vector, which has the extra layer of sychronization).
If you want jList to change when the map changes, then you will have to write your own ListModel (which is not that hard). You will also have to figure out how to know when the map changes.
在我回答问题后就发现了这种方法,我想我会把它放在这里供社区使用。 我认为这是完成任务的最有效方法,但我当然愿意接受更多建议。
Found this way to do it just after I answered the question, thought I would put it up here for the community. I think that this is the most efficient way to get it done, but am certainly open to more suggestions.