我正在制作两个JLists。第一个是可以在单击按钮事件时选择要传输到其他列表的项目列表。一个列表被赋予一串数据,如 JList(data(,另一个是新 JList(( 对象的空声明。
list1 = new JList<String>(data);
list2 = new JList<String>();
如何为列表 2 保留与为列表 1 分配的内存量相同的内存量?
事情是这样的。 JList只是对其他事物的看法。 对于使用 new JList()
创建的JList
,它是一个只读空模型的视图。
因此,为创建list2
的代码保留内存是没有意义的。
如果要在 UI 中更新list2
,则需要使用ListModel
实例化list2
。 保留空间的任何注意事项都与所选ListModel
的实现以及创建空间的方式有关。
然而,从大局来看,预分配可能无关紧要。 如果列表相对较小,则增长模型的成本将是"噪音"。 如果列表足够大,很重要,则:
- 列表
- 元素使用的 CPU/内存可能会淹没列表开销
- 与视图关联的其他 CPU 开销(例如侦听器回调(可能会使 UI 运行缓慢,并且
- (人类(UI人体工程学将是有问题的。