1.priorityqueue的方法iterator()中提供的迭代器並不保證以有序的方式遍歷優先順序佇列中的元素,因此不能使用此迭代器依次遍歷priorityqueue中的隊頭元素。
2. hash函式避免衝突的經驗值取大質數(如果capacity比較大的話)。比如如下的衝突避免hash function。
1view codeprivate
int gethash(int
count)
9return
hash;
10 }
附一張big prime number table
lwrupr
% err
prime
2526
10.416667
5326
271.041667
9727
280.520833
19328
291.302083
38929
2100.130208
769210
2110.455729
1543
211212
0.227865
3079
212213
0.113932
6151
213214
0.008138
12289
214215
0.069173
24593
215216
0.010173
49157
216217
0.013224
98317
217218
0.002543
196613
218219
0.006358
393241
219220
0.000127
786433
220221
0.000318
1572869
221222
0.000350
3145739
222223
0.000207
6291469
223224
0.000040
12582917
224225
0.000075
25165843
225226
0.000010
50331653
226227
0.000023
100663319
227228
0.000009
201326611
228229
0.000001
402653189
229230
0.000011
805306457
230231
0.000000
1610612741
3. 判斷兩個integer物件相等時一律用equals方法,只有integer的值在-128 - 127才不會new integer,直接==比較不會出錯。超出這個範圍比較的就是記憶體位址。
4.iterator中的next方法返回的是object物件,所以一定要記得強制轉換成原來的型別。比如(integer) it.next()。
面試易錯點
一 char str1 abc char str2 abc char str3 abc char str4 abc str1和str2是不相同的,str3和 str4是相同的,str1和str2是儲存在堆上,str3和 str4在常量區,這兩個指標指向的是同一位址 編譯器認為p1指向的 abc 和p...
總結 易錯點
題目要求是 結尾,我使用了str 1 str 2 single line containing only marks the end of a test case.題目給的是 f1 1 f2 2 fn fn 1 fn 2 n 3 我卻從f0開始推,並且迴圈跟著從0開始了 題目可能會出現一道腦筋急轉彎...
陣列易錯點
1.初始化定義 1.int n 常量表示式 常量表示式不能為變數 2.int main 內與int main 外的陣列初始化定義有區別 int main 內初始化為隨機,int main 外初始化值為0 2.資料範圍 a i 的i範圍不能超過常量表示式中的範圍 典型的陣列越界 3.陣列不能夠進行賦值...