gpt4 book ai didi

java不同集合更新模式

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

我有一个类,例如MyDataClass 。我有一个HashMap<String,MyDataClass> myMap;对于 myMap 中的每个引用,我还有一些对同一对象的其他 MyDataClass 引用。具体来说:

MyDataClass c = new MyDataClass();
//configure c object with appropriate values
myMap.put("akeyvalue",c);
MyDataClass ref = c;

此时引用和 myMap.get("akeyvalue")引用内存中的同一个对象。如果我以后这样做myMap.remove("akeyvalue") HashMap 中的条目将被删除,但对象 ref 仍将引用相同的位置。本质上是值 myMap.get("akeyvalue")仍然存在。如何将其更新为null,以便它同步到hashmap? IE。如果我有引用相同对象的不同数据结构/集合,那么最好使用什么模式/设计来保持它们同步?在我的小示例中,在我在 myMap 上删除的代码中,我无法访问 ref 对象。我必须以某种方式找到 ref 并将其归零。一般来说,我可以有一个不同的数据结构,例如List<MyDataClass> refs;

谢谢

最佳答案

您必须手动执行此操作。如果您想要remove(..)在一个集合上影响另一个集合:

  • 延长HashMap (或任何集合)
  • 创建一个 private Collection anotherCollection在你的类中使用 setter 和 getter
  • 覆盖remove(..) ,调用super.remove(..)也可以调用anotherCollection.remove(..)

关于java不同集合更新模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3694790/

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