List Map 基础信息

HashMap

最近写程序经常需要遍历集合,所以总结一下内容:

一、简单实现

Map map = new HashMap();
for(Object o : map.keySet()){
//o: 返回的key
//map.get(o):返回的value对象内容
map.get(o);
}

以上方法慢不说,效率也不高。

1.1 最经常使用也最可取的方法

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());
}

1.2 最简单的方法

Map<Integer, Integer> map = new HashMap<Integer, Integer>();
//遍历map中的key值
for (Integer key : map.keySet()) {
System.out.println("Key = " + key);
} //遍历map中的value值
for (Integer value : map.values()) {
System.out.println("Value = " + value);
}

二、使用Iterator遍历

Map map = new HashMap();
Iterator it = map.entrySet().iterator();
while (it.hasNext()) {
Map.Entry entry = (Map.Entry) it.next();
Object key = entry.getKey();
Object value = entry.getValue();
}

三、使用Iterator遍历

Map map = new HashMap();
Collection c = map.values();
Iterator iterator = c.iterator();
while(iterator.hasNext()) {
Object value = iterator.next();
}

keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。

ArrayList

import java.util.Iterator;
import java.util.List;
import java.util.ArrayList;
public class Test {
public static void main(String args[]) {
List<String> list = new ArrayList<String>();
list.add("test1");
list.add("test2");
list.add("test3");
Iterator it1 = list.iterator();
while (it1.hasNext()) {
System.out.println(it1.next());
}
for (Iterator it2 = list.iterator(); it2.hasNext();) {
System.out.println(it2.next());
}
for (String tmp : list) {
System.out.println(tmp);
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}

JAVA遍历HashMap和ArrayList的更多相关文章

  1. java遍历Hashmap/Hashtable的几种方法

    一>java遍历Hashtabe: import java.util.Hashtable; import java.util.Set; public class HashTableTest { ...

  2. Java遍历HashMap并修改(remove)(转载)

    遍历HashMap的方法有多种,比如通过获取map的keySet, entrySet, iterator之后,都可以实现遍历,然而如果在遍历过程中对map进行读取之外的操作则需要注意使用的遍历方式和操 ...

  3. Java遍历HashMap并修改(remove)

    遍历HashMap的方法有多种,比如通过获取map的keySet, entrySet, iterator之后,都可以实现遍历,然而如果在遍历过程中对map进行读取之外的操作则需要注意使用的遍历方式和操 ...

  4. [Java] 遍历HashMap和HashMap转换成List的两种方式

    遍历HashMap和HashMap转换成List   /** * convert the map to the list(1) */ public static void main(String[] ...

  5. java遍历hashMap、hashSet、Hashtable

    一.遍历HashMap Map<Integer, String> map = new HashMap<Integer, String>(); 方法一:效率高 for(Entry ...

  6. 浅谈JAVA中HashMap、ArrayList、StringBuilder等的扩容机制

    JAVA中的部分需要扩容的内容总结如下:第一部分: HashMap<String, String> hmap=new HashMap<>(); HashSet<Strin ...

  7. java遍历HashMap的高效方法

    https://stackoverflow.com/questions/46898/how-do-i-efficiently-iterate-over-each-entry-in-a-java-map

  8. java 遍历map 方法 集合 五种的方法

    package com.jackey.topic; import java.util.ArrayList;import java.util.HashMap;import java.util.Itera ...

  9. java 遍历map的方法

    package com.jackey.topic; import java.util.ArrayList;import java.util.HashMap;import java.util.Itera ...

随机推荐

  1. C#编程(二十二)----------继承的类型

    继承的类型 在面向对象的编程中,有两种截然不同的集成类型:实现继承和接口继承 实现继承:表示一个类型派生于一个基类型,它拥有该基类型的所有成员字段和函数.在实现继承中,派生类型采用基类型的每个函数的实 ...

  2. 分布式系统:CAP

    一致不太理解CAP,最近好像有点感觉了,这里写下来,先介绍下CAP的定义: C:一致性.写完数据后,立马能看到最新数据. A:可用性.所有请求必须有响应. P:分区容错性.网络或服务器故障不会导致系统 ...

  3. Java判断多个时间段是否重叠(重叠区间个数)

    import java.util.ArrayList; import java.util.Collections; import java.util.List; /** * 判断多个时间段是否出现重叠 ...

  4. JAVA8-让代码更优雅之List排序

    先定义一个实体类 @Data @AllArgsConstructor @NoArgsConstructor public class Human { private String name; priv ...

  5. Xcode修改项目的Build Location

    Xcode默认project通过build输出的目录,存放于目录 /Users/用户名/Library/Developer/Xcode/DerivedData/产品名称-hjwqiconnjhpjle ...

  6. cocos2d-x中使用CCOrbitCamera做水平翻转

    项目中需要用到水平翻转效果,这里偷懒了-   首先翻转,它只是转到了180度,多了就觉得很奇怪了. 所以这里设定就是先从0 ~ 90度,然后再从270 ~ 360,90 – 270 视觉上是感觉不到变 ...

  7. Java常用工具类之ArrayUtil

    过滤 ArrayUtil.filter方法用于编辑已有数组元素,只针对泛型数组操作,原始类型数组并未提供. 方法中Editor接口用于返回每个元素编辑后的值,返回null此元素将被抛弃. 例如:过滤数 ...

  8. TeXLive里面集成了CTeX,Lyx是一个编辑软件

    TeXLive里面集成了CTeX,LaTeX是排版引擎,CTeX和TeXLive是发行版.LaTeX是毛坯房,CTeX和TeX Live是带精装的房子.CTeX 套装是一个个人作品,存在很多问题.这些 ...

  9. .condarc(conda 配置文件)、换国内源

    原文地址 https://blog.csdn.net/lanchunhui/article/details/71379555 Configuration — Conda documentation . ...

  10. Ubuntu 查找文件的方法

    1. whereis+文件名 用于程序名的搜索,搜索结果只限于二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s),如果省略参数,则返回所有信息. 2. find / -name ...