遍历map

Map集合(Java基础、skycto JEEditor)

自闭症网瘾萝莉.ら 提交于 2019-11-29 17:12:54
一、什么是Map 不同于 List 单列的线性结构, Java 中的 Map 提供的是一种双列映射的存储集合,它能够提供一对一的数据处理能力,双列中的第一列我们称为 key ,第二列就是 value ,一个 key 只能够在一个 Map 中出现最多一次,通过一个 key 能够获取 Map 中唯一一个与之对应的 value 值,正是它的这种一对一映射的数据处理关系,在实际应用中可以通过一个 key 快速定位到对应的 value 。 Map 的三个特点: 包含键值对 键唯一 键对应的值唯一 二、Map集合常用的遍历方式 遍历Map 集合的常用方式有三种: 使用keySet 的方式 使用entrySet 的方式 使用values() 取值的方式 这三种方式中,都有对应的for 循环遍历和Iterator 遍历的方式取值。 keySet 是键的集合,Set 里面的类型即key 的类型; entrySet 是键- 值对的集合,Set 里面的类型是Map.Entry ,Entry 是一个键- 值对; keySet ():迭代后只能通过get() 取key ; entrySet ():迭代后可以e.getKey (),e.getValue() 取key 和value ,返回的是Entry 接口; 三、遍历的性能对比 for each 与显示调用Iterator 等价,除了第三种方式(for

循环遍历数组/对象

血红的双手。 提交于 2019-11-29 17:10:25
1、for循环   1)常规写法        2) arr.lengh缓存下来:实际上,缓存后比常规写法效率要低       3)小技巧:边赋值边判断,第二个分号中是判断的内容,每次循环时会对其进行判断,当i++大于arr的长度时,arr[i++]=underfined 在JS中0 null   underfined '' 都会转换为false,循环停止。      注意:for循环使用break、continue和return都可以退出   1)break:终止循环,只能用在循环语句中        2)continue:跳出当前循环。继续下一个循环       3)return 表达式:用于指定函数返回的值,只能用在函数体中。     执行return false;语句会终止函数的执行,返回到函数的调用处,即使后面还有其他的语句也     不再执行。        2、for of:ES6推出的用于迭代字符串、数组、类数组对象、map、set等一切可以迭代的结构。       注意:不能迭代对象   1)字符串与数组      2)类数组对象      3)set结构   4)map结构     3、for in(ES5):主要用于遍历数组或者对象中的属性,不推荐直接遍历数组,因为遍历的是数组中的索引        4、forEach():用于遍历数组   forEach

js循环遍历性能

元气小坏坏 提交于 2019-11-29 17:09:46
定length for循环 (有length) 不定length for循环(使用数组length) 不定length for循环(判断数组length是否存在) forEach(Array自带,对某些不适用例如:NodeList) forof(es6) map forin 结论: 普通for循环才是最优雅的 (PS:以上所有的代码都只是进行空的循环,没有再循环内部执行代码,仅仅是分析各自循环的时间而已) 性能对比截图 分析结果1 以下截图中的数据是,在chrome (支持es6)中运行了100次后得出的结论(每次运行10次,一共10个循环,得到的分析结果) 可以看出,forin循环最慢。优化后的普通for循环最快 分析结果2 以下截图数据是,在chrome (支持es6)中运行了1000次后得出的结论(每次运行100次,一共10个循环,得到的分析结果) 来源: https://www.cnblogs.com/leeke98/p/11208530.html

JS 中的数组遍历方式效率比较

喜你入骨 提交于 2019-11-29 17:07:46
JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代码如下: for(j = 0; j < arr.length; j++) { } 简要说明: 最简单的一种,也是使用频率最高的一种,虽然性能不弱,但仍有优化空间 第二种:优化版for循环 代码如下: for(j = 0,len=arr.length; j < len; j++) { } 简要说明: 使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显。 这种方法基本上是所有循环遍历方法中性能最高的一种 第三种:弱化版for循环 代码如下: for(j = 0; arr[j]!=null; j++) { } 简要说明: 这种方法其实严格上也属于for循环,只不过是没有使用length判断,而使用变量本身判断 实际上,这种方法的性能要远远小于普通for循环 第四种:foreach循环 代码如下: arr.forEach(function(e){ }); 简要说明: 数组自带的foreach循环,使用频率较高,实际上性能比普通for循环弱 第五种:foreach变种 代码如下: Array.prototype.forEach.call(arr,function(el){ });

Collection,泛型,Map

孤者浪人 提交于 2019-11-29 16:53:11
1.Collection集合 集合和数组的区别? 数组的长度是固定的, 集合的长度是可变的 数组中存储的数据都是同一类型的数据。集合存储的是对象,而且对象的类型可以不一致 集合框架 单列集合 java.util.Collection Collection:单列集合的跟接口,用于存储一系列的规则的元素 两个子接口: java.util.List: List中元素是有序,元素可重复 实现类:java.util.ArrayList, java.util.LinkedList Java.util.Set: Set中元素无序,不重复 实现类:java.util.HashSet, java.util.TreeSet Collection集合的常用功能 Collection是所有单列集合的父接口,因此定义了一些通过方法 public boolean add(E, e) :添加元素到集合中 public void clear() :清空集合中所有的元素 public boolean remove(E, e) :删除指定的元素 public boolean contains(E, e) :判断当前集合是否存在给定的元素 public boolean isEmpty() :判断当前集合是否为空 public int size() :返回集合中元素的个数 public Object[] toArray(

遍历集合的方法总结

╄→гoц情女王★ 提交于 2019-11-29 10:31:21
遍历List方法一:普通for循环 1 2 3 4 for ( int i= 0 ;i<list.size();i++){ //list为集合的对象名 String temp = (String)list.get(i); System.out.println(temp); } 遍历List方法二:增强for循环(使用泛型!) 1 2 3 for (String temp : list) { System.out.println(temp); } 遍历List方法三:使用Iterator迭代器(1) 1 2 3 4 for (Iterator iter= list.iterator();iter.hasNext();){ String temp = (String)iter.next(); System.out.println(temp); } 遍历List方法四:使用Iterator迭代器(2) 1 2 3 4 5 6 Iterator iter =list.iterator(); while (iter.hasNext()){ Object obj = iter.next(); iter.remove(); //如果要遍历时,删除集合中的元素,建议使用这种方式! System.out.println(obj); } 遍历Set方法一:增强for循环 1 2 3 for

遍历Map的四种方法之map.entry详解

落爺英雄遲暮 提交于 2019-11-29 09:43:55
Map.entrySet() 这个方法返回的是一个Set<Map.Entry<K,V>>,Map.Entry 是Map中的一个接口,他的用途是表示一个映射项(里面有Key和Value),而Set<Map.Entry<K,V>>表示一个映射项的Set。Map.Entry里有相应的getKey和getValue方法,即JavaBean,让我们能够从一个项中取出Key和Value。 下面是遍历Map的四种方法: package www.wityx.com; public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put(“1”, “value1”); map.put(“2”, “value2”); map.put(“3”, “value3”); //第一种:普遍使用,二次取值 System.out.println(“通过Map.keySet遍历key和value:”); for (String key : map.keySet()) { System.out.println("key= "+ key + " and value= " + map.get(key)); } //第二种 System.out.println(“通过Map

Java中遍历Map对象的4种方法

女生的网名这么多〃 提交于 2019-11-29 08:26:19
java中的所有map都实现了Map接口,以下方法适用于任何map实现(HashMap, TreeMap, LinkedHashMap, Hashtable, 等等)。 1 HashMap<Integer, String> map = new HashMap<>(); 2 map.put(1, "jack"); 3 map.put(2, "tom"); 4 map.put(3, "jeffy"); 方法一:在for-each循环中使用entries来遍历 这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。 1 for(Map.Entry<Integer, String> entry:map.entrySet()) { 2 System.out.println("key = "+entry.getKey()+",value = "+entry.getValue()); 3 } 如果你遍历的是一个空的map对象,for-each循环将抛出NullPointerException,因此在遍历前你总是应该检查是否为空引用。 方法二:在for-each循环中遍历keys或values 如果只需要map中的键或者值,你可以通过keySet或values来实现遍历,而不是用entrySet。 1 for(Integer key:map.keySet()) { 2

遍历map的四种方式

帅比萌擦擦* 提交于 2019-11-29 08:03:21
遍历Map的四种方法: public static void main(String[] args) { Map<String, String> map = new HashMap<String, String>(); map.put("1", "value1"); map.put("2", "value2"); map.put("3", "value3"); //第一种:普遍使用,二次取值 System.out.println("通过Map.keySet遍历key和value:"); for (String key : map.keySet()) { System.out.println("key= "+ key + " and value= " + map.get(key)); } //第二种 System.out.println("通过Map.entrySet使用iterator遍历key和value:"); Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry<String, String> entry = it.next(); System.out.println("key= " + entry.getKey() + "

for-in 和 for-of 的区别

↘锁芯ラ 提交于 2019-11-29 05:10:54
遍历数组通常使用fori循环,自ES5发布后也可以使用forEach,另外在ES5具有遍历数组功能的还有map、filter、some、every、reduce、reduceRight等,只不过他们的返回结果不一样。但是使用forEach遍历数组的话,使用break不能中断循环,使用return也不能返回到外层函数。 myArray.forEach(function (value) { console.log(value); }); 因此另外有for-in循环和for-of循环两种增强型循环。其中,for-in是ES5标准,遍历的是key(可遍历对象、数组或字符串的key);for-of是ES6标准,遍历的是value(可遍历对象、数组或字符串的value)。 for-in 直接看简单的代码示例了解用法。 var arr = [1, 2, 4, 5, 7]; for (var index in arr) {   console.log(myArray[index]); } 使用for-in可以遍历数组,但是会存在以下问题: 1.index索引为字符串型数字(注意,非数字),不能直接进行几何运算。 2.遍历顺序有可能不是按照实际数组的内部顺序(可能按照随机顺序)。 3.使用for-in会遍历数组所有的可枚举属性,包括原型。例如上例的原型方法method和name属性都会被遍历出来