前面我們介紹了JavaScript Array 的API,在JavaScript 中 數組 本身就非常強大,可以存儲任意類型,且長度自動擴容,又提供 遍歷, 過濾,等多個操作數組的方法。
簡直完爆Java的的數組(長度固定,單一類型)。而Java中的集合類 就是彌補數組不足,其底層大多使用Object [] 存儲,只是提供動態擴容的策略,當然JDK的 API 之豐富,是其他語言難以匹敵的。
但是不妨礙我對Java、JavaScript的喜愛。
Java就像 一個中年老婦女,你總能在JDK中 看到她的 風韻猶存,在構建 大型分布式 系統,就能體現出她的 諄諄教導;
而JavaScript 就是含苞待放的 少女 ,每一次綻放 ,就會激起你 內心的 漣漪,得小心調教,才能為你所用。
好吧 原諒我不恰當的比喻,來點干貨。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88/**
*@class ArrayList
*@description
*@time 2014-09-16 21:59
*@author StarZou
**/
function
ArrayList(arr) {
this
._elementData = arr || [];
}
var
arrayListPrototype = {
'_arrayPrototype'
: Array.prototype,
'_getData'
:
function
() {
return
this
._elementData;
},
'size'
:
function
() {
return
this
._getData().length;
},
'isEmpty'
:
function
() {
return
this
.size() === 0;
},
'contains'
:
function
(obj) {
return
this
.indexOf(obj) > -1;
},
'indexOf'
:
function
(obj) {
var
i , data =
this
._getData(), length = data.length;
for
(i = 0; i < length; i++) {
if
(obj === data[i]) {
return
i;
}
}
return
-1;
},
'lastIndexOf'
:
function
(obj) {
var
i , data =
this
.