HashSet集合既然是基于散列值。我猜想存储一定是二叉树,怎么存储的顺序和迭代出来的顺序是一样的(因为存在二叉树的位置不确定啊)?

解决方案 »

  1.   

    hashset在建立的时候内部会有index,level自动生成的。
      

  2.   

    既然是二叉树,存进去的数的顺序就打乱了啊,怎么迭代出来,顺序怎么没有变啊?
    index是什么?也不可能记录顺序?(被学c#,很多不懂,麻烦讲通俗点)
      

  3.   

    HashSet这里面是一个key值一个value值吧 
    至于你说为什么会乱,那你再看下面比如
    哈希表<int,int> 哈=new 哈希表<in,int>();
    哈[]这个中是根据key找value的吧
    这是。NET封装好的`至于你说为什么能找到,那你再哈希表上右击转到定义再看
    建议别看了看什么二叉权啥的`就开始拿个东西钻`那是理论`你多做做`再去想
      

  4.   

    不是乱,而是存入的顺序跟foreach出来的顺序是一样的,应该不一样啊?
      

  5.   

    HashSet应该不是二叉树(二叉查找树的插入查找效率是Log(n),而HashSet应该是O(1)的)
    而是基于散列的(比如Mod一个大的质数),因此遍历的时候顺序肯定是乱的。