Java集合的遍历方式

Map的遍历

1.通过map.entrySet遍历Key和Value

Map<Integer,Integer> map = new HashMap<>();
        map.put(1, 10);
        map.put(2, 8);
for(Map.Entry<Integer, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() + " ---- " + entry.getValue() );
}

如果你遍历的Map是一个空的对象(null),for-each循环将会抛出java.lang.NullPointerException异常

2.通过map.keySet()来遍历key,通过map.values()来遍历Value,适用于只需要map中的Key或者Value的情况

Map<Integer,Integer> map = new HashMap<>();
        map.put(1, 10);
        map.put(2, 8);
        for (Integer i : map.keySet()) {
            System.out.println(i);
        }

        for ( Integer i : map.values()) {
            System.out.println(i);
        }

3.通过Iterator遍历Map

//使用泛型Map<Integer,Integer> map = new HashMap<>();
        map.put(1, 10);
        map.put(2, 8);
        Iterator<Map.Entry<Integer, Integer>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<Integer, Integer> temp = iterator.next();
            System.out.println(temp.getKey() + " ----- " + temp.getValue());
        }

//不使用泛型Map<Integer,Integer> map = new HashMap<>();        map.put(1, 10);        map.put(2, 8);        Iterator iterator = map.entrySet().iterator();        while (iterator.hasNext()) {            Map.Entry entry = (Map.Entry) iterator.next();            Integer key = (Integer) entry.getKey();            Integer value = (Integer) entry.getValue();            System.out.println(key + " ----- " + value);        }

4. 通过key找value(效率低)

Map<Integer,Integer> map = new HashMap<>();
        map.put(1, 10);
        map.put(2, 8);
        for ( Integer key : map.keySet()) {
            Integer value = map.get(key);
            System.out.println(key + " ----- " + value);
        }

List的遍历

1.方式一

List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        for ( Integer i : list) {
            System.out.println(i);
        }

2.方式二

List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        Iterator iterator = list.iterator();
        while(iterator.hasNext()) {
            System.out.println(iterator.next());
        }

3.方式三

List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        for ( int i = 0 ; i < list.size() ; i++ ) {
            System.out.println(list.get(i));
        }
时间: 2024-08-28 23:36:14

Java集合的遍历方式的相关文章

Java Map各遍历方式的性能比较

1. 阐述 对于Java中Map的遍历方式,很多文章都推荐使用entrySet,认为其比keySet的效率高很多.理由是:entrySet方法一次拿到所有key和value的集合:而keySet拿到的只是key的集合,针对每个key,都要去Map中额外查找一次value,从而降低了总体效率.那么实际情况如何呢? 为了解遍历性能的真实差距,包括在遍历key+value.遍历key.遍历value等不同场景下的差异,我试着进行了一些对比测试. 2. 对比测试 一开始只进行了简单的测试,但结果却表明k

各种集合的遍历方式

List ArrayLIst ArrayList<String> arrayList = new ArrayList<>(); arrayList.add("苹果"); arrayList.add("香蕉"); arrayList.add("西瓜"); arrayList.add("葡萄"); //for循环 for(int i=0; i < arrayList.size();i++) { Sys

Java中Map集合的遍历方式

方法一:在for-each循环中使用entries来遍历 1 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); 2 3 for (Map.Entry<Integer, Integer> entry : map.entrySet()) { 4 5 System.out.println("Key = " + entry.getKey() + ", Value = "

Java之Map遍历方式性能分析:ketSet与entrySet

keySet():将Map中所有的键存入到Set集合中.因为set具备迭代器,所以可以以迭代方式取出所有的键,再根据get方法获取每一个键对应的值,其仅能通过get()取key. entrySet(): 返回此映射中包含的映射关系的 Set 视图,格式为Set<Map.Entry<K,V>>, Map.Entry表示映射关系,迭代后可以e.getKey().e.getValue()取key和value,返回的是Entry接口 . keySet()方式 Set<String&g

java 8 map遍历方式 (转)

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&q

java集合List的遍历方式

  循序渐进学习java 集合的遍历方式: 一.先以list集合为例: package com.test; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public class testing { public static void main(String[] args) {        // TODO Auto-generated method stub              

java集合之ArrayList

ArrayList<E>类:位于java.util包下,是List集合中的一种. 特点:有序,可重复,实现不同步,底层数据结构是数组,查询快增删慢. 常用构造: ArrayList()   :   空参构造,默认容量是10 ArrayList(int capacity)   :   带参构造,指定初始容量. 方法: 1)添加功能 boolean  add(E e)  : 将指定的元素添加到此列表的尾部. void   add(int index,E e): 将指定的元素插入此列表中的指定位置.

java集合框架--Map集合

1.Map集合的概述 Map集合是将键映射到值的对象.一个映射不能包含重复的键.每个键最多只能映射到一个值. 2.Map接口和Collection接口的不同? Map集合存储元素是成对出现的,Collection集合存储元素是单独出现的. Map集合的键是唯一的,值是可重复的. Collection集合的子接口Set是唯一的,List是可重复的. Map集合的数据结构值针对键有效,和值无关,而Collection接口的数据结构是针对元素有效. 3.Map集合示例及功能 package cn; i

LinkedList遍历方式区别

Java中普通的遍历方式一般常用的就是fori和foreach方式,在一般情况下这两种区别不大,往往是效率区别和有一些特殊场合注意问题,下次再详解,这次先描述关于LinkedList遍历时遇到的问题. 具体问题: 项目中需要实现接收对方频繁发送过来的数据并解析后序列化文件到目的服务器,采用了定量发送的办法,每次把接收的数据解析成功后放入到LinkedList当中,当达到目标数量时,遍历LinkedList中的数据,拼接成功想要的内容,然后序列化到目的服务器中.刚开始遍历的方法是这样的: 1 fo