Introduzimos a API do JavaScript Array. Em JavaScript, as matrizes são muito poderosas em si mesmas. Eles podem armazenar qualquer tipo e seus comprimentos são expandidos automaticamente. Eles também fornecem métodos para atravessar, filtrar e outras operações nas matrizes.
É uma matriz Java completa (comprimento fixo, tipo único). As aulas de coleção em Java compensam as deficiências das matrizes. A maioria das camadas subjacentes usa o armazenamento do objeto [], que fornece apenas estratégias dinâmicas de expansão. Obviamente, a rica API do JDK é difícil de combinar com outros idiomas.
Mas isso não atrapalha meu amor por Java e JavaScript.
Java é como uma velha de meia idade. Você sempre pode ver o charme dela em JDK. Ao construir um grande sistema distribuído, ela pode refletir seus ensinamentos sinceros;
JavaScript é uma garota que está prestes a florescer. Toda vez que ela floresce, isso desperta ondulações em seu coração. Você deve ser cuidadosamente treinado para usá -lo para você.
OK, perdoe -me por metáfora inadequada, deixe -me saber algumas coisas práticas.
/ ** *@classe ArrayList *@Descrição *@Time 2014-09-16 21:59 *@Autor starzou **/ function ArrayList (arr) {this._elementData = arr || []; } var ArrayListProType = {'_ArrayPrototype': Array.prototype, '_GetData': function () {return this._elementData; }, 'size': function () {return this._getData (). comprimento; }, 'isEmpty': function () {return this.size () === 0; }, 'contém': function (obj) {return this.indexOf (obj)> -1; }, 'indexOf': function (obj) {var i, data = this._getData (), length = data.length; for (i = 0; i <comprimento; i ++) {if (obj === data [i]) {return i; }} retornar -1; }, 'lastIndexOf': function (obj) {var i, data = this._getData (), length = data.length; for (i = comprimento -1; i> -1; i-) {if (obj === data [i]) {return i; }} retornar -1; }, 'get': function (index) {return this._getData () [index]; }, 'set': function (index, elemento) {this._getData () [index] = elemento; }, 'add': function (index, elemento) {if (element) {this.set (index, elemento); } else {return this._getData (). push (index); }}, 'Remover': function (index) {var OldValue = this._getData () [index]; this._getData () [index] = null; retornar OldValue; }, 'Clear': function () {this._getData (). Length = 0; }, 'addall': function (index, array) {if (array) {this._getData (). splice (index, 0, array); } else {this._arrayPrototype.push.apply (this._getData (), index); }}}; ArrayList.Prototype = ArrayListPrototype; // Código de teste VAR ARR = novo ArrayList ([3, 6, 5, 'xyz', 'Foo', 'Xyz']); console.log (arr.contains ('xyz')); console.log (arr.indexOF ('xyz')); console.log (arr.LastIndexOf ('xyz')); console.log (arr.get (2)); Arr.addall ([1, 2, 3]); console.log (arr);O código acima implementou parte dele e existem algumas otimizações.
No futuro, tenho tempo para escrever JavaScript para simular classes que implementam estruturas de dados como árvore, pilha, fila, mapa etc.