zoukankan      html  css  js  c++  java
  • Dictionary字典类关联数组

    Dictionary的遍历

    使用 for..in 循环或 for each..in 循环来遍历 Dictionary 对象的内容。

    1.for..in 循环用于基于键进行遍历;

    2.for each..in 循环用于基于与每个键关联的值进行遍历,使用 for each..in 循环可以直接访问 Dictionary 对象的值。

    for (var key:Object in groupMap)
    {
        trace(key, groupMap[key]);
    }
                
    for each (var item:Object in groupMap)
    {
        trace(item);
    }
    /*
    output
    [object Sprite] [object Object]
    [object Sprite] [object Object]
    [object Sprite] [object Object]
    [object Object]
    [object Object]
    [object Object]
    */


    groupMap初始化:

    var groupMap:Dictionary = new Dictionary();
    //
    objects to use as keys var spr1:Sprite = new Sprite(); var spr2:Sprite = new Sprite(); var spr3:Sprite = new Sprite(); // objects to use as values var groupA:Object = new Object(); var groupB:Object = new Object(); // Create new key-value pairs in dictionary. groupMap[spr1] = groupA; groupMap[spr2] = groupB; groupMap[spr3] = groupB; if (groupMap[spr1] == groupA) {   trace("spr1 is in groupA"); } if (groupMap[spr2] == groupB) {   trace("spr2 is in groupB"); } if (groupMap[spr3] == groupB) {   trace("spr3 is in groupB"); }

    对象键和内存管理

    var myObject:Object = new Object();
    var myMap:Dictionary = new Dictionary();
    myMap[myObject] = "foo";

    利用myObject作为键时,会复制一个myObject引用,两个引用同时指向同一个对象。

    若要使 myObject 引用的对象能够进行垃圾回收,您必须删除对它的所有引用。在此情况下,必须更改 myObject 的值并从myMap 中删除 myObject 键,如以下代码所示:

    myObject = null;
    delete myMap[myObject];

    或者可以使用 Dictionary 构造函数的 useWeakReference 参数,以使所有字典键均成为“ 弱引用”。

    var myMap:Dictionary = new Dictionary(true);


     

  • 相关阅读:
    java中的接口
    java中的多态
    java中的继承
    抽象和封装
    表单验证
    13、迭代器与生成器
    10、end关键字和Fibonacci series: 斐波纳契数列
    9、字典
    8、元组
    2、Python_Day_1_作业
  • 原文地址:https://www.cnblogs.com/sdlwlxf/p/2824342.html
Copyright © 2011-2022 走看看