Nous avons introduit l'API du tableau JavaScript. En JavaScript, les tableaux sont très puissants en eux-mêmes. Ils peuvent stocker n'importe quel type et leurs longueurs sont automatiquement élargies. Ils fournissent également des méthodes de traversée, de filtrage et d'autres opérations sur les tableaux.
Il s'agit d'un tableau Java complet (longueur fixe, type unique). Les classes de collection en Java compensent les lacunes des tableaux. La plupart des couches sous-jacentes utilisent un stockage d'objets [], qui ne fournit que des stratégies d'extension dynamique. Bien sûr, la riche API de JDK est difficile à assortir par d'autres langues.
Mais cela ne gêne pas mon amour pour Java et Javascript.
Java est comme une vieille femme d'âge moyen. Vous pouvez toujours voir son charme dans JDK. En construisant un grand système distribué, elle peut refléter ses enseignements sérieux;
JavaScript est une fille qui est sur le point de fleurir. Chaque fois qu'elle fleurit, cela suscitera des ondulations dans votre cœur. Vous devez être soigneusement formé pour l'utiliser pour vous.
Ok, pardonnez-moi une métaphore inappropriée, faites-moi savoir des choses pratiques.
/ ** * @ CLASS ArrayList * @ Description * @ Time 2014-09-16 21:59 * @ auteur Starzou ** / fonction ArrayList (arr) {this._elementData = arr || []; } var arrayListprototype = {'_arrayprototype': array.prototype, '_getData': function () {return this._elementData; }, 'size': function () {return this._getData (). la longueur; }, 'iSempty': function () {return this.size () === 0; }, 'contient': fonction (obj) {return this.indexof (obj)> -1; }, 'indexof': function (obj) {var i, data = this._getData (), longueur = data.length; for (i = 0; i <length; i ++) {if (obj === data [i]) {return i; }} return -1; }, 'LastIndexof': function (obj) {var i, data = this._getData (), longueur = data.length; pour (i = longueur - 1; i> -1; i--) {if (obj === data [i]) {return i; }} return -1; }, 'get': function (index) {return this._getData () [index]; }, 'set': function (index, élément) {this._getData () [index] = élément; }, 'add': function (index, élément) {if (élément) {this.set (index, élément); } else {return this._getData (). push (index); }}, 'supprimer': fonction (index) {var oldvalue = this._getData () [index]; this._getData () [index] = null; Retour 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; // Test Code 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);Le code ci-dessus en a mis en œuvre une partie, et il y a des optimisations.
À l'avenir, j'ai le temps d'écrire JavaScript pour simuler des classes qui implémentent des structures de données telles que l'arbre, la pile, la file d'attente, la carte, etc.