HashMap
public HashMap(int initialCapacity)构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap。 参数:
initialCapacity - 初始容量。 
抛出: 
IllegalArgumentException - 如果初始容量为负。

解决方案 »

  1.   

    public static Map<String,ERPOrgCorp> toCorpMap(List<ERPOrgCorp> list,boolean needSeal,Object... isDisplay){这个省略号是怎么回事?我很菜,是大菜鸟
      

  2.   

    Object... isDisplay   可变参数,参数数量不确定时,可以使用Object... isDisplay 来表示。
    楼主搜一下,java可变参数
      

  3.   

    java可变参数Varargs 
      

  4.   


        /**
         * Constructs an empty <tt>HashMap</tt> with the specified initial
         * capacity and the default load factor (0.75).
         *
         * @param  initialCapacity the initial capacity.
         * @throws IllegalArgumentException if the initial capacity is negative.
         */
        public HashMap(int initialCapacity) {
            this(initialCapacity, DEFAULT_LOAD_FACTOR);
        }initialCapacity the initial capacity. 里面Entry数组的初始空间开辟大小
      

  5.   

    HashMap(int initialCapacity) 
              构造一个带指定初始容量和默认加载因子 (0.75) 的空 HashMap。
      

  6.   

    java的可变参数,从JDK1.5开始有的,你可以传0至多个参数
      

  7.   

    加载因子越高   空间利用率提高了  但是查询时间 和添加时间增加hashmap 是这样存的
    先利用hashcode  找到需要存的地方
    但是 存的地方肯定是有限的 就是hashMap分配到的空间  比如是  10
    现在你 第一个元素来了 那么他会根据 你 hashcode%10 得到你 在 10个位置中该存到哪里这个时候就有一个问题,就是,如果hashcode%10 找到存的地方   当你要存进去时候 你发现里面已经有另外一个对象了,
    那么这时候就要调用 equals方法 进行比较,如果相同,就说明是一个相同的对象。就替换掉。
    如果不同,那么就 形成散列桶,  就是2个对象一起, 不过有先后, 后进来的 在后面。hashmap 查询对象,要的是效率,直接通过hashcode找到存放的地址,直接取出,只需一次。
    但是像我们前面说的这种情况,是会让操作数增加的,
    你找到了 hashcode 所对应的物理地址,发现里面有2个对象, 这时就不能确定那个是你要找的,那么就要通过equals和你传入的key进行比对,相同 则返回。前面的讲述已经发现  当你空间只有仅仅为10的时候 是很容易造成,2个对象的hashcode 所对应的地址是一个位置的情况
    这样就造成 2个 对象 会形成散列桶,使查询和插入的时间增加。这时就有一个加载因子的参数,如果加载因子为0.75 ,如果你hashmap的 空间有 100  那么  当你插入了75个元素的时候 hashmap就需要扩容了,不然的话 会形成很长散列桶 , 对于查询和插入都会增加时间,因为 他要一个一个的equals。
    但是你又不能让加载因子很小,0.01 这样是不合适的,因为 他会大大消耗你的 内存, 你一加入一个对象hashmap就扩容。这时就存在着一个平衡,,jdk中默认是0.75   可以根据自己的实际情况进行调整希望能帮助你
      

  8.   

    写的很认真,赞。不过有个细节需要纠正下,“那么这时候就要调用 equals方法 进行比较”之前由于||的短路性质会先比较hashcode是否相同(这就是为什么覆写equals方法时推荐重写hashcode方法,不然使用某些集合,如set时会出错)。
      

  9.   


    对的 因为 前面有提到 是先通过hashcode 找到物理内存地址    所以 后面没有提
    看的非常认真
      

  10.   

    建议楼主下个Java API帮助文档自己看,这种东西文档生写得很清楚。