我有一个JSF表,它使用Hashmap存储选定的复选框。我的问题是:是否有可能使用2D Java数组来存储密钥而不是Hashmap?是否可以使用2D数组来存储JSF复选框?
编辑 我使用此代码来存储选定的键。 Map
这个代码如何被重写?
private HashMap<String, Boolean> selected = new HashMap<>();
// send the list
public Map<String, Boolean> getselected() {
return selected;
}
我的想法是创建一个二维数组(它将被用于MAP)将存储的页数和页面上的列表。例如100页×10个键。
编辑2
我创建迟缓装载,其从Oracle取数据JSF表。 JSF工作得非常好,速度很快。我面对的问题是当我试图创建select all
复选框,其中所有的kays和密钥存储到hashmap
。稍后,这些键将用于SQL查询以删除用户选择的行。 我创建了具有10000行的数据库表并将它们显示到JSF表中。当我点击它们时,我创建了hashmap
和10000.对于这个尺寸,性能相对较好。我测试过删除它们 - 我创建了Java方法,它使用生成的hashmap
并使用存储在hashmap
中的密钥删除数据库行。这是显示,但可以做一些代码优化。 最大的问题是可扩展性。我用1 000 000个键测试了hashmap
- 它有效,但速度非常慢。我需要设计JSF表来处理非常大的数据。 我认为解决方案是使用二维数组(我们称之为这个例子)。我将以这种方式解释我的想法: 例如,我将拥有100页的JSF表。每个页面将有10行。进入标准hashmap
当我选择所有行时,我将拥有1000个密钥。 在二维数组解决方案中,我可以创建包含100个元素的数组,当我在页面之间切换时,将只有10行将从分页代码生成。当我选择所有数据库行时,我只能将可见行键插入到二维数组中。将其他位置放入我替换的阵列中,例如1
以便知道有什么。当我按下删除按钮时,Java代码将知道所有元素都是“虚拟”选择的。有更好更简单的解决方案吗?
你为什么不使用简单的数组列表呢? (保持简单...) – Daniel
我想用延迟加载进行实验。 – user1285928
@Daniel你知道这可能吗? – user1285928