JList为数据保留内存

时间:2018-01-25 23:54:06

标签: java arrays memory memory-management

我正在制作两个JLists。第一个是可以选择在按钮点击时转移到另一个列表的项目列表。一个列表被赋予一个数据字符串,例如JList(data),另一个列表是新JList()对象的空声明。

list1 = new JList<String>(data);
list2 = new JList<String>();

如何为列表2保留与列表1相同的内存量?

1 个答案:

答案 0 :(得分:0)

这就是事情。 JList只是其他东西的视图。对于使用JList创建的new JList(),它是只读空模型的视图

因此,根据您创建list2的代码保留内存毫无意义。

如果您希望在用户界面中更新list2,则需要使用list2实例化ListModel。任何保留空间的注意事项都是为了实现您选择的ListModel以及创建它的方式。

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

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