java数据结构源码_java 数据结构. 源代码阅读
Collections工具類里的
Collections.synchronizedList
public static List synchronizedList(List list) {
return (list instanceof RandomAccess ?
new SynchronizedRandomAccessList(list) :
new SynchronizedList(list));
}
##不過通過推斷是否實現RandomAccess接口,而返回不同的SynchronizedList(內部)類,
##RandomAccess foreach較快, iterator較慢,區別不明顯(如i5上,本人測試,一個ArrayList,90w個object,? foreach出來是6多ms, iterator出來7ms)
##SequenceAccess foreach較慢,iterator較快.區別很明顯. (如i5上,本人測試,一個LinkedList,10w個object,? foreach出來是200多ms, iterator出來僅4ms)
LinkedList的get(n) 方法.?? 源代碼里寫得也有點妙,一不留意 確實是個坑.??? (這是SequenceAccess 的foreach 慢的原因)
private Entry entry(int index) {
if (index < 0 || index >= size)
throw new IndexOutOfBoundsException("Index: "+index+
", Size: "+size);
Entry e = header;
if (index < (size >> 1)) {
for (int i = 0; i <= index; i++)
e = e.next;
} else {
for (int i = size; i > index; i--)
e = e.previous;
}
return e;
}
以上就是java 數據結構. 源代碼閱讀的全部內容。
總結
以上是生活随笔為你收集整理的java数据结构源码_java 数据结构. 源代码阅读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux终端命令大全(完善中)
- 下一篇: C语言基础程序题及答案(适合学完C基础的