La carte es6 est-elle un type de référence ?
map est un type de référence ; map (set) est un nouveau type de données de référence dans es6, qui représente la relation de mappage des données. Les données du type de données de collection de cartes sont stockées de manière « clé/valeur ». Vous pouvez utiliser les propriétés de l'objet comme clé et utiliser les propriétés pour référencer la valeur. La carte peut être créée en utilisant new, par exemple « const ». maCarte = new Map();" .
L'environnement d'exploitation de ce tutoriel : système Windows 7, ECMAScript version 6, ordinateur Dell G3.
map est un type de référence.
es6 map
Avant ES6, l'implémentation de « clé » => « valeur » en JavaScript, qui est ce que nous appelons souvent les paires clé-valeur, était réalisée à l'aide d'Object. Cependant, cette méthode d'implémentation pose des problèmes dans des scénarios particuliers. ES6 a introduit un nouveau type de collection appelé Map, qui apporte au langage un véritable mécanisme de stockage de paires clé-valeur.
map (set) est un nouveau type de données de référence dans es6, qui représente la relation de mappage des données ; les données dans le type de données de collection de cartes sont stockées sous la forme de "clé/valeur", et vous pouvez utiliser les propriétés de l'objet comme clé. Utilisez Propriétés pour référencer des valeurs.
Utiliser le mot-clé new
pour instancier une cartenew
关键字来实例一个map
let m = new Map(); console.log(m); // Map(0) {}
创建时初始化:
传入一个二维数组参数(可迭代对象,内部以数组的方式传入键值)
每个子数组,第一个元素是map对应的key
, 第二个元素是map对应的value
let m = new Map([[{}, 222], [{}, '123']]); console.log(m); // Map(2) { {} => 222, {} => '123' }
1-2-1 添加映射元素
通过set()方法添加,传入两个参数,第一个传入映射的键,第二个传入映射的值。返回的是该映射集合(意味着可以链式添加)
let m = new Map(); m.set('prop', '值'); console.log(m); // Map(1) { 'prop' => '值' }
链式添加键值
let m = new Map(); m.set('prop', '值').set('prop2', false).set('num', {id: 13}); console.log(m); // Map(3) { 'prop' => '值', 'prop2' => false, 'num' => { id: 13 } }
1-2-2 映射集合长度
使用size
let m = new Map(); m.set('prop', '值').set('prop2', false).set('num', {id: 13}); console.log(m.size);
Passer un paramètre de tableau bidimensionnel (objet itérable , La valeur clé est transmise sous forme de tableau en interne) Pour chaque sous-tableau, le premier élément est la clé
correspondant à la carte, et le deuxième élément est la valeur</code > correspondant à la map</a><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>let m = new Map();
m.set(&#39;prop&#39;, &#39;值&#39;).set(&#39;prop2&#39;, false).set(&#39;num&#39;, {id: 13});
console.log(m.get(&#39;prop2&#39;));
// false</pre><div class="contentsignin">Copier après la connexion</div></div> <strong><a id="12_Map_Api_24"></strong></h3><p>1-2 Map Api</p><h3 id="a-id-a-a-id-strong-strong-Ajouter-des-éléments-de-cartographie"><a id="124__66"></a><a id="121__25"><strong></strong>1-2-1 Ajouter des éléments de cartographie</h3><p></p>Ajouter via la méthode set(), passez deux paramètres, le premier est la clé de la carte et le second est la valeur de la carte. Ce qui est renvoyé est l'ensemble de mappages (ce qui signifie qu'il peut être ajouté dans une chaîne)<h3><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>let m = new Map();
m.set(&#39;prop&#39;, &#39;值&#39;).set(&#39;prop2&#39;, false).set(&#39;num&#39;, {id: 13});
m.delete(&#39;prop2&#39;);
// true
console.log(m.get(&#39;prop2&#39;), m.size);
// undefined 2</pre><div class="contentsignin">Copier après la connexion</div></div><a id="125__80">Valeur de clé enchaînée</a><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>let m = new Map();
m.set(&#39;prop&#39;, &#39;值&#39;).set(&#39;prop2&#39;, false).set(&#39;num&#39;, {id: 13});
m.delete(&#39;prop2&#39;);
// true
console.log(m.has(&#39;prop2&#39;), m.has(&#39;num&#39;));
// false true</pre><div class="contentsignin">Copier après la connexion</div></div><strong><a id="122__45"></strong></h3>1-2-2 longueur de l'ensemble de mappages<p></p><h3>Utilisez <code > L'attribut size
peut obtenir le nombre d'éléments dans la collection actuellelet m = new Map();
m.set('prop', '值').set('prop2', false).set('num', {id: 13});
m.clear();
// true
console.log(m);
// Map(0) {}
Copier après la connexion
1-2-3 Récupérer l'élémentlet m = new Map(); m.set('prop', '值').set('prop2', false).set('num', {id: 13}); m.clear(); // true console.log(m); // Map(0) {}
Récupérer l'élément via la méthode get() et transmettre la clé Supprimer un élément de la collection mappée via la méthode delete() et renvoyer une valeur booléenne indiquant le succès ou l'échec de la suppression 1- 2-5 Détecter si l'élément existe Utilisez la méthode has() pour détecter si l'élément cible existe et renvoyer la valeur booléenne du résultat de la détectionrrreee map peut itérer les éléments en fonction de l'ordre d'insertion Utilisation de la mémoireLes différences dans les navigateurs entraîneront une utilisation différente de la mémoire des deux méthodes de stockage. Cependant, étant donné la taille de la mémoire, la carte stocke environ 50. % de paires clé-valeur en plus que Object Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!let m = new Map();
m.set('prop', '值').set('prop2', false).set('num', {id: 13});
console.log(m.entries === m[Symbol.iterator]);// true
for(let k1 of m.entries()){
console.log(k1);
// [ 'prop', '值' ]
// [ 'prop2', false ]
// [ 'num', { id: 13 } ]
// 遍历的属性即对应映射元素的键值对数组
}
for(let k2 of m.keys()){
console.log(k2);
// prop
// prop2
// num
// 遍历的属性对应映射元素的键
}
for(let k3 of m.values()){
console.log(k3);
// 值
// false
// { id: 13 }
// 遍历的属性对应映射元素的值
}
for(let k4 of m[Symbol.iterator]()){
console.log(k4);
// [ 'prop', '值' ]
// [ 'prop2', false ]
// [ 'num', { id: 13 } ]
// 遍历的属性即对应映射元素的键值对数组
}
rrreee
1-2-6 Méthode d'effacement de l'élément
Utilisez la méthode clear() pour effacer tous les éléments et renvoyez la valeur booléenne d'une effacement réussie Value1-3 Séquence et itération
rrreee
1-4 Comparaison avec l'objet

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

application.yml définit la collection de listes. La première façon consiste à utiliser l'annotation @ConfigurationProperties pour obtenir toutes les valeurs de la collection de listes type:code:status:-200-300-400-500. le fichier de configuration. Ce qu'il faut noter ici, c'est que lors de la définition de la liste Collection, définissez d'abord un Bean de classe de configuration, puis utilisez l'annotation @ConfigurationProperties pour obtenir la valeur de la collection de liste. Nous expliquerons ici le rôle des annotations pertinentes. @Component remet la classe d'entité à la direction Spring @ConfigurationPropertie

1. Contexte technique Dans le développement de projets réels, nous utilisons souvent des middlewares de mise en cache (tels que Redis, MemCache, etc.) pour nous aider à améliorer la disponibilité et la robustesse du système. Mais dans de nombreux cas, si le projet est relativement simple, il n’est pas nécessaire d’introduire spécifiquement un middleware tel que Redis pour augmenter la complexité du système afin d’utiliser la mise en cache. Java lui-même dispose-t-il donc de composants de mise en cache légers et utiles ? La réponse est bien sûr oui, et il existe plusieurs solutions. Les solutions courantes incluent : ExpiringMap, LoadingCache et un packaging basé sur HashMap. 2. Effets techniques pour réaliser les fonctions courantes du cache, telles qu'une stratégie de suppression obsolète, l'échauffement des données de hotspot 3. ExpiringMap3.

async est es7. async et wait sont de nouveaux ajouts à ES7 et sont des solutions pour les opérations asynchrones ; async/await peut être considéré comme un sucre syntaxique pour les modules co et les fonctions de générateur, résolvant le code asynchrone js avec une sémantique plus claire. Comme son nom l'indique, async signifie « asynchrone ». Async est utilisé pour déclarer qu'une fonction est asynchrone ; il existe une règle stricte entre async et wait. Les deux sont inséparables l'un de l'autre et wait ne peut être écrit que dans des fonctions asynchrones.

Dans es5, vous pouvez utiliser l'instruction for et la fonction indexOf() pour réaliser la déduplication de tableau. La syntaxe "for(i=0;i<array length;i++){a=newArr.indexOf(arr[i]);if( a== -1){...}}". Dans es6, vous pouvez utiliser l'opérateur spread, Array.from() et Set pour supprimer la duplication ; vous devez d'abord convertir le tableau en un objet Set pour supprimer la duplication, puis utiliser l'opérateur spread ou la fonction Array.from(). pour reconvertir l'objet Set en un groupe Just.

Méthode 1. Utilisez HashtableMapashtable=newHashtable(); C'est la première chose à laquelle tout le monde pense, alors pourquoi est-il thread-safe ? Jetez ensuite un œil à son code source. Nous pouvons voir que nos méthodes couramment utilisées telles que put, get et containKey sont toutes synchrones, elles sont donc thread-safe publicsynchronizedbooleancontainsKey(Objectkey){Entrytab[]=table;inthash=key. hashCode( );intindex=(hash&0x7FFFFFFF)%tab.leng

Il existe de nombreuses façons de convertir des javabeans et des cartes, telles que : 1. Convertir des beans en json via ObjectMapper, puis convertir json en map. Cependant, cette méthode est compliquée et inefficace. Après les tests, 10 000 beans ont été convertis en boucle. ça prend 12 secondes ! ! ! Non recommandé.2. Obtenez les attributs et les valeurs de la classe du bean via la réflexion Java, puis convertissez-les en paires clé-valeur correspondant à la carte. Cette méthode est la deuxième meilleure, mais elle est un peu plus gênante. 3. Grâce à la méthode net.sf.cglib.beans.BeanMap dans la classe, cette méthode est extrêmement efficace. La différence entre elle et la deuxième méthode est qu'en raison de l'utilisation du cache, le bean doit être initialisé lorsqu'il est utilisé pour la première fois. créé.

Optimisation des performances du langage Go map Dans le langage Go, map est une structure de données très couramment utilisée, utilisée pour stocker une collection de paires clé-valeur. Toutefois, les performances de la carte peuvent être affectées lors du traitement de grandes quantités de données. Afin d'améliorer les performances de la carte, nous pouvons prendre certaines mesures d'optimisation pour réduire la complexité temporelle des opérations cartographiques, améliorant ainsi l'efficacité d'exécution du programme. 1. Pré-allouer la capacité de la carte. Lors de la création d'une carte, nous pouvons réduire le nombre d'extensions de carte et améliorer les performances du programme en pré-attribuant la capacité. Généralement, nous

L'instruction map est fournie par le module ngx_http_map_module. Par défaut, nginx charge ce module sauf si artificiellement --without-http_map_module. Le module ngx_http_map_module peut créer des variables dont les valeurs sont associées aux valeurs d'autres variables. Permet la classification ou le mappage simultané de plusieurs valeursà plusieurs valeurs différenteset le stockage dans une variable. La directive map est utilisée pour créer une variable, mais n'effectue l'opération de mappage de vue que lorsque la variable est acceptée. En traitant des requêtes qui ne font pas référence à des variables, il n'y a aucune pénalité de performances pour le module. 1.ngx_http_map_module syntaxe de la carte de description des instructions du module
