易错点合集

1.PriorityQueue的方法iterator()中提供的迭代器并不保证以有序的方式遍历优先级队列中的元素,因此不能使用此迭代器依次遍历PriorityQueue中的队头元素。

2. hash函数避免冲突的经验值取大质数(如果capacity比较大的话)。比如如下的冲突避免hash function。

 1     private int getHash(int[] count) {
 2         int hash = 0;
 3         int a = 378551;
 4         int b = 63689;
 5         for (int num : count) {
 6             hash = hash * a + num;
 7             a = a * b;
 8         }
 9         return hash;
10     }
View Code

 附一张big prime number table

lwrupr% errprime
252610.41666753
26271.04166797
27280.520833193
28291.302083389
292100.130208769
2102110.4557291543
2112120.2278653079
2122130.1139326151
2132140.00813812289
2142150.06917324593
2152160.01017349157
2162170.01322498317
2172180.002543196613
2182190.006358393241
2192200.000127786433
2202210.0003181572869
2212220.0003503145739
2222230.0002076291469
2232240.00004012582917
2242250.00007525165843
2252260.00001050331653
2262270.000023100663319
2272280.000009201326611
2282290.000001402653189
2292300.000011805306457
2302310.0000001610612741

3. 判断两个Integer对象相等时一律用equals方法,只有Integer的值在-128 - 127才不会new Integer,直接==比较不会出错。超出这个范围比较的就是内存地址。

 

4.Iterator中的next方法返回的是Object对象,所以一定要记得强制转换成原来的类型。比如(Integer) it.next()。

 

转载于:https://www.cnblogs.com/choumeng/p/6445748.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值