遍历map

ES6笔记(6)-- Set、Map结构和Iterator迭代器

放肆的年华 提交于 2020-02-04 14:57:18
系列文章 -- ES6笔记系列 搞ES6的人也是够无聊,把JS弄得越来越像Java、C++,连Iterator迭代器、Set集合、Map结构都出来了,不知道说什么好... 一、简单使用 1. iterator 学过C++的人应该知道这是个迭代器对象,拥有一个指针,指向数据结构中的某个成员 JS中的iterator也有类似的功能,JS内部为一些数据结构实现了iterator迭代器的接口,让我们可以方便的使用 var [a, b, ...c] = [1, 2, 3, 4]; c // [3, 4] 如上,解构赋值以及扩展运算符的便利,多亏了内部实现的默认iterator迭代器接口,可以使用其Symbol.iterator属性获得,如 var arr = [1, 2, 3]; var it = arr[Symbol.iterator](); it.next() // {done: false, value: 1} it.next() // {done: false, value: 2} it.next() // {done: false, value: 3} it.next() // {done: true, value: undefined} 上述的iterator接口表现形式过于隐秘,在generator生成器函数中,我们可以看看比较显示的iterator接口调用: function

Java8中Map的遍历方式总结

倖福魔咒の 提交于 2020-01-29 01:33:56
Java8中Map的遍历方式总结 在这篇文章中,我将对Map的遍历方式做一个对比和总结,将分别从JAVA8之前和JAVA8做一个遍历方式的对比,亲测可行。 public class LambdaMap { private Map<String, Object> map = new HashMap<>(); @Before public void initData() { map.put("key1", "value1"); map.put("key2", "value2"); map.put("key3", "value3"); map.put("key4", 4); map.put("key5", 5); map.put("key5", 'h'); } /** * 遍历Map的方式一 * 通过Map.keySet遍历key和value */ @Test public void testErgodicWayOne() { System.out.println("---------------------Before JAVA8 ------------------------------"); for (String key : map.keySet()) { System.out.println("map.get(" + key + ") = " + map.get(key));

Java遍历Map对象的四种方式

柔情痞子 提交于 2020-01-28 21:24:15
关于java中遍历map具体哪四种方式,请看下文详解吧。 方式一 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Map.Entry<Integer, Integer> entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); } 方法二 在for-each循环中遍历keys或values。 如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet。 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); //遍历map中的键 for (Integer key : map.keySet()) { System.out.println("Key = " + key); } //遍历map中的值 for (Integer value : map.values()) { System.out.println("Value = " + value); }

Map 集合遍历的4种方法

拈花ヽ惹草 提交于 2020-01-28 03:03:53
ap 集合初始化时,指定集合初始值大小。 说明:HashMap 使用 HashMap(int initialCapacity) 初始化。 正例:initialCapacity = (需要存储的元素个数 / 负载因子) + 1。注意负载因子(即 loaderfactor)默认为 0.75,如果暂时无法确定初始值大小,请设置为 16(即默认值)。 反例:HashMap 需要放置 1024 个元素,由于没有设置容量初始大小,随着元素不断增加,容量 7 次被迫扩大,resize 需要重建 hash 表,严重影响性能。 /** * * 测试类 */ @org.junit.Test public void testHashMap() { Map<String, String> map = new HashMap<>(4); map.put("1", "a"); map.put("2", "b"); map.put("3", "c"); map.put("4", "d"); System.out.println("------------------- map.keySet()-------------------------"); //获取所有的 key,根据 key 取出对应的value for (String key : map.keySet()) { System.out.println

go map增删改查及互换操作整理

爱⌒轻易说出口 提交于 2020-01-27 04:48:20
go map 是一种无序的键值对集合,今天复习一下map结构及其操作,扎实下基础。 江山如此多娇,引无数英雄竞折腰。 目录 map元素查看、遍历与删除 map元素修改(元素value类型为string、int) map元素修改(元素value类型为struct{}) k-v互换操作 map元素查看、遍历与删除 // 初始化一个string值的map并赋值 m := map[string]string{} m["a"] = "value-a" //新增值 m["b"] = "value-b" fmt.Println(m) // map[a:value-a b:value-b] // 查看m里有没有a元素及其值,存在该键值对时exist为true,反之为false if v, exist := m["a"];exist { fmt.Println("键值存在:", v) // 键值存在: value-a } else { fmt.Println("key为a的元素不存在。") } // 遍历m:以两个值获取 for key, value := range m { fmt.Printf("m[%s] = %s \t", key, value) // m[a] = value-a m[b] = value-b } fmt.Println("") // 遍历m:以第二个参数获取,只获取值

007Java集合框架+Collection接口API+Iterator迭代器接口+Set接口+List接口+Map接口+Collections工具类

允我心安 提交于 2020-01-25 08:04:47
一.Java集合框架 Java集合概述(java.util包下) 一方面,面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象的操作,就要对对象进行存储。另 一方面,使用Array存储对象方面具有一些弊端,而Java集合就像一种容器,可以动态地把多个对象的引用放入容器中。 Java集合类可以用于存储数量不等的多个对象,还可用于保存具有映射关系的关联数组。 数组存储对象的特点:Student[] stu = new Student[20];stu[0] = new Student();弊端,一旦创建,其长度不可变。真实的数组存放的对象的个数是不可知的。 Java集合可分为Collection和Map两种体系 Collection接口:Set,元素无序、不可重复的集合,HashSet、LinkedHashSet、TreeSet。List,元素有序,可重复的集合,ArrayList、LinkedList、Vector。 Map接口:具有影射关系“key-value对”的集合。HashMap、LinkedHashMap、TreeMap、Hashtable(子类-Properties)。 二.Collection接口API Collection接口方法 1.size():返回集合中元素的个数 2.add(Object obj):向集合中添加一个元素 3.addAll

js循环/迭代/遍历有多少方法

拜拜、爱过 提交于 2020-01-22 18:48:38
js循环/迭代/遍历有多少方法 JavaScript中存在着很多循环的方法 常见的有 for,while,do while,for in 等, ES5中的 forEach , ES6的 for of , jquery中封装的 each for 局限性很大,通过累加数组索引,来输出数组中的值。一般用来遍历数组,不能遍历对象,因为对象的长度是undefined,无法作为其循环的条件。 let person = { name1 : "fur" , age : "1" , hobbies : { study : "code" , play : "games" } } let arr = [ 'fur' , 'furfur' , 'furfur-jiang' ] console . log ( "遍历对象结果:" ) console . log ( "person对象长度= " + person . length ) console . log ( "遍历数组结果:" ) for ( let i = 0 ; i < arr . length ; i ++ ) { console . log ( arr [ i ] ) } for - 循环代码块一定的次数 while - 当指定的条件为 true 时循环指定的代码块 do/while - 同样当指定的条件为 true 时循环指定的代码块

Java遍历map集合的4中方式

你离开我真会死。 提交于 2020-01-21 05:27:36
方法一 通过Map.entrySet遍历key和value,在for-each循环中使用entries来遍历.推荐,尤其是容量大时 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Map.Entry<Integer, Integer> entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); } 方法二、通过Map.keySet遍历key,通过键找值value遍历(效率低),普遍使用,二次取值 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Integer key : map.keySet()) { Integer value = map.get(key); System.out.println("Key = " + key + ", Value = " + value); } 方法三 如果只需要map中的键或者值,你可以通过Map.keySet或Map.values来实现遍历

河南理工大学新生挑战赛

左心房为你撑大大i 提交于 2020-01-20 10:09:55
点击这里可以查看题目哦! A.水题~签到 B.The flower 题意:意思就是给一个字符串,然后从字符串中得到子串,并且子串满足情况 1.出现次数大于2,; 2.子串的长度等于k; 找到有多少个这样的串然后按照字典序打印出来 思路:用map存子串用来计算数目,然后用set来去重并排序,在截取字符串的时候要注意不能直接遍历长度截取子串,因为截取长度不知。所以要从i = k-1开始。然后就是遍历子串,看map里面哪一个>2,然后把这个子串插入到一个新的set容器里面,目的是排序,然后输出大小,遍历输出子串即可! # include <bits/stdc++.h> using namespace std ; int main ( ) { string s ; int k ; cin >> s >> k ; unordered_map < string , int > mmp ; set < string > st ; int n = ( int ) s . length ( ) ; for ( int i = k - 1 ; i < n ; i ++ ) { string now = s . substr ( i - ( k - 1 ) , k ) ; mmp [ now ] ++ ; st . insert ( now ) ; } set < string > ans ; for

遍历map集合

╄→гoц情女王★ 提交于 2020-01-18 12:09:21
Map<String , String> map = new HashMap<String, String>();1.使用map的keySet获取key,之后通过key获取value。 for (String key:map.keySet()){ String value=map.get(key); } 2.通过Map.entrySet使用iterator遍历key和value Iterator<Map.Entry<String,String>> iterator1= map.entrySet().iterator(); while (iterator1.hasNext()){ Map.Entry<String,String> entry=iterator1.next(); String key=entry.getKey(); String value=entry.getValue(); } 3.通过Map.entrySet遍历key和value(大容量的时候) 1 for (Map.Entry<String,String> entry:map.entrySet()){ 2 String key=entry.getKey(); 3 String value=entry.getValue(); 4 } 4.通过Map.values()遍历所有的value,但不能遍历key for