none
c#集合 RRS feed

答案

  • 内存分布是.Net的实现细节,在不同计算机上可以不一样。 每个类的用法在MSDN里面都可以查到。比如ArrayList的在http://msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx 至于各种集合之间的区别,建议你去看看数据结构的教材。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2010年8月22日 3:10
    版主
  • ArrayList:数组这一块的物理存储是在内存中开辟一块指定大小的区域,然后每个元素挨个存放,可以通过索引直接找到对应的元素。内存物理地址计算的公式:

    某个元素的地址=起始元素地址+某个元素索引*类型大小(通常在C中有sizeof计算得到)。

    至于泛型的List也是如此,只是内部不断开辟新数组,以便扩容或者收缩。这样很浪费内存(大容量的时候),所以List一般建议搜索比较好。

    至于LinkedList,是双项链表,地址随机分布,随机开辟,通过内部安全指针指引,便于插入和删除。

    Map什么的Java的,在Net中对应Dictionary或者HashTable。是键值对存储形式,离散存储,便于存储“主键-对应值”的内容。

    2010年8月23日 3:25
    版主

全部回复

  • 你好!

    用 is 运算符

     

    object o = new ArrayList();
    
    if (o is ArrayList)
    {
      // ...
    }
    

     


    知识改变命运,奋斗成就人生!
    2010年8月21日 7:14
    版主
  • 您好:我想知道这几种类的或者是接口的实现示列的内存分布和操作等区别。    

    他们跟对象数组的异同。

    2010年8月21日 7:35
  • 内存分布是.Net的实现细节,在不同计算机上可以不一样。 每个类的用法在MSDN里面都可以查到。比如ArrayList的在http://msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx 至于各种集合之间的区别,建议你去看看数据结构的教材。

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2010年8月22日 3:10
    版主
  • ArrayList:数组这一块的物理存储是在内存中开辟一块指定大小的区域,然后每个元素挨个存放,可以通过索引直接找到对应的元素。内存物理地址计算的公式:

    某个元素的地址=起始元素地址+某个元素索引*类型大小(通常在C中有sizeof计算得到)。

    至于泛型的List也是如此,只是内部不断开辟新数组,以便扩容或者收缩。这样很浪费内存(大容量的时候),所以List一般建议搜索比较好。

    至于LinkedList,是双项链表,地址随机分布,随机开辟,通过内部安全指针指引,便于插入和删除。

    Map什么的Java的,在Net中对应Dictionary或者HashTable。是键值对存储形式,离散存储,便于存储“主键-对应值”的内容。

    2010年8月23日 3:25
    版主