gpt4 book ai didi

java - 实现 Map 的保存(或提交)和回滚方法

转载 作者:行者123 更新时间:2023-12-01 18:55:59 25 4
gpt4 key购买 nike

我正在寻找一种快速便捷的方法来将 save() 和 rollback() 添加到标准 Map。假设我有一个 Table 类的对象“table”,该对象又具有一个名为“rows”的私有(private) Map。我想要实现的是一种快速且没有内存浪费的方法,让 Row 执行以下操作:

row = new Row();
table.addRow(row).setValue("col1", "foo").setValue("col2", "bar").save();
row.setValue("col2", "beer");
System.out.println(table.getRows()); // 1. col1=foo, col2=bar

row.save();
System.out.println(table.getRows()); // 1. col1=foo, col2=beer

实际上,我的设计非常简单:当调用 addRow() 时,我将行放入 map 内;没有缓冲区,没有临时元素;我只是将整个 Row 实例传递给 rows 集合。但我需要一种快速方法并且(如果可能的话)避免行重复。

有什么想法吗?

最佳答案

这听起来太像“我想在内存中保存新值和旧值,但我不想在内存中保存新值和旧值”。

选项:

a) 所有 added 的 map 元素,保存时执行 putAll .

b) 你的 map ,而不是<ClassKey, ClassValue> ,持有<ClassKey, ClassValue2>Value2拥有 ClassValue 的两项,新实例和旧实例。在save ,您将新的(如果有)传递给旧的。仅当您更改每个“事务”中的大部分条目时,它才会有用。

没有提到删除元素的问题,这会给你带来更多的乐趣。使用选项 2,您可以将 boolean 值设置为 Value2 ,使用选项 a 您将需要更多解决方法。

关于java - 实现 Map 的保存(或提交)和回滚方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13922809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com