【发布时间】:2011-06-25 06:33:48
【问题描述】:
在 Java 中,这可以通过 LinkedHashMap 删除最旧的条目/最旧的访问条目来完成。 ActionScript 3 中的任何等效类?
谢谢。
【问题讨论】:
标签: actionscript-3 collections map hashtable
在 Java 中,这可以通过 LinkedHashMap 删除最旧的条目/最旧的访问条目来完成。 ActionScript 3 中的任何等效类?
谢谢。
【问题讨论】:
标签: actionscript-3 collections map hashtable
不,很遗憾没有。你可以轻松实现一个,如果我要实现它,我会扩展 Proxy object 它会给你相当大的灵活性。
更新:
此更新是为了澄清 OP 评论中的问题。评论是 “这将是一个新类扩展 Proxy 而不是 Dictionary/etc?”
是的,你会想要扩展 Proxy,这样做的原因是它允许你覆盖几个神奇的方法来实现你的目标。特别是在您的情况下,您可以覆盖setProperty(name:*, value:*):void。每次在您的类上设置属性时都会调用此方法(由您提供设置实现),因此您可以计算在给定时间设置的值的数量。如果您扩展 Object 或字典,则您无权访问它,并且知道何时设置新属性。
如果您改为扩展对象,则需要依靠接口来实现您的目标,需要用户通过方法调用来设置属性。
代理实现仍允许您像这样设置属性:
myObj.foo = 'bar';
myObj["foo"] = 'bar';
方法实现(扩展对象)如下所示:
myObject.setVal("name", "val");
【讨论】: