JList 为数据保留内存



我正在制作两个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的实现以及创建空间的方式有关。

然而,从大局来看,预分配可能无关紧要。 如果列表相对较小,则增长模型的成本将是"噪音"。 如果列表足够大,很重要,则:

    列表
  1. 元素使用的 CPU/内存可能会淹没列表开销
  2. 与视图关联的其他 CPU 开销(例如侦听器回调(可能会使 UI 运行缓慢,并且
  3. (人类(UI人体工程学将是有问题的。

最新更新