Hemos introducido la API de matriz JavaScript. En JavaScript, las matrices son muy poderosas en sí mismas. Pueden almacenar cualquier tipo, y sus longitudes se expanden automáticamente. También proporcionan métodos para atravesar, filtrar y otras operaciones en matrices.
Es una matriz Java completa (longitud fija, tipo único). Las clases de colección en Java compensan las deficiencias de las matrices. La mayoría de las capas subyacentes usan el almacenamiento del objeto [], que solo proporciona estrategias de expansión dinámica. Por supuesto, la rica API de JDK es difícil de igualar por otros idiomas.
Pero no obstaculiza mi amor por Java y JavaScript.
Java es como una anciana de mediana edad. Siempre puedes ver su encanto en JDK. Al construir un gran sistema distribuido, ella puede reflejar sus serias enseñanzas;
JavaScript es una chica que está a punto de florecer. Cada vez que florece, despertará ondas en tu corazón. Tienes que estar cuidadosamente capacitado para usarlo para usted.
Ok, perdóname por una metáfora inapropiada, hazme saber algunas cosas prácticas.
/ ** *@class ArrayList *@Descripción *@Time 2014-09-16 21:59 *@autor Starzou **/ function ArrayList (arr) {this._elementData = arr || []; } var arrayListPrototype = {'_ArrayPrototype': array.prototype, '_getData': function () {return this._elementData; }, 'size': function () {return this._getData (). Longitud; }, 'isEtimty': function () {return this.size () === 0; }, 'contiene': function (obj) {return this.indexof (obj)> -1; }, 'indexOf': function (obj) {var i, data = this._getData (), longitud = data.length; para (i = 0; i <longitud; i ++) {if (obj === data [i]) {return i; }} return -1; }, 'lastindexof': function (obj) {var i, data = this._getData (), longitud = data.length; para (i = longitud -1; i> -1; i--) {if (obj === data [i]) {return i; }} return -1; }, 'get': function (index) {return this._getData () [index]; }, 'set': function (index, elemento) {this._getData () [index] = elemento; }, 'agregar': function (index, elemento) {if (element) {this.set (index, elemento); } else {return this._getData (). Push (index); }}, 'eliminar': function (index) {var OldValue = this._getData () [index]; this._getData () [index] = null; devolver OldValue; }, 'claro': function () {this._getData (). Longitud = 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 prueba var arr = new 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);El código anterior ha implementado parte de él, y hay algunas optimizaciones.
En el futuro, tengo tiempo para escribir JavaScript para simular clases que implementan estructuras de datos como árbol, pila, cola, mapa, etc.