zoukankan      html  css  js  c++  java
  • 六.集合的遍历

    (1)对于List,Set,Map。每个集合都有两种遍历方法:forEach,迭代器(forEach的底层实现也是迭代器)

    (2)List的遍历,用迭代器的话,推荐用ListIterator

    (3)迭代器遍历的步骤:

        1.获取迭代器:iterator() 2.hasNext() 3.next()

    (4)对Map遍历:可以遍历key和value,也可以遍历entry

        不管采用forEach还是Iterator遍历,都首先要获得entry集(键值对集),然后再遍历(遍历key:getKey(),遍历value:getValue())

       方法:hashMap.entrySet(),entry.getKey(),entry.getValue()

    for循环,forEach,迭代器

    一.ArrayList

    1.for循环

    2.迭代器Iterator

    迭代器只能向后遍历,不能增,可以删

    3.forEach(迭代器的变种)

    4.ListIterator

    相比于 Iterator 迭代器,这里的 ListIterator 向前向后都可以遍历,可增删

    二.LinkedList

    1.for循环

    2.迭代器

    1   Iterator<String> listIt = linkedList.listIterator();
    2   while(listIt.hasNext()){
    3      System.out.print(listIt.next()+" ");//A B C D
    4  }

    注意:如果想一边迭代,一边用集合自带的方法进行删除或者新增操作,都会抛出异常。

    3.forEach(底层实现也是使用的迭代器)

    三.HashSet

    1.forEach

    2.迭代器

    四.HashMap

    1.分别获取 key 集合和 value 集合

    1 //1、分别获取key和value的集合
    2 for(String key : map.keySet()){
    3     System.out.println(key);
    4 }
    5 for(Object value : map.values()){
    6     System.out.println(value);
    7 }

    2.获取 key 集合,然后遍历key集合,根据key分别得到相应value

    1  //2、获取key集合,然后遍历key,根据key得到 value
    2  Set<String> keySet = map.keySet();
    3  for(String str : keySet){
    4      System.out.println(str+"-"+map.get(str));
    5  }

    3.得到 Entry 集合,然后遍历 Entry

    1 //3、得到 Entry 集合,然后遍历 Entry
    2 Set<Map.Entry<String,Object>> entrySet = map.entrySet();
    3 for(Map.Entry<String,Object> entry : entrySet){
    4     System.out.println(entry.getKey()+"-"+entry.getValue());
    5 }

    4.迭代

    1 //4、迭代
    2 Iterator<Map.Entry<String,Object>> iterator = map.entrySet().iterator();
    3 while(iterator.hasNext()){
    4     Map.Entry<String,Object> mapEntry = iterator.next();
    5     System.out.println(mapEntry.getKey()+"-"+mapEntry.getValue());
    6 }

      基本上使用第三种方法是性能最好的,

      第一种遍历方法在我们只需要 key 集合或者只需要 value 集合时使用;

      第二种方法效率很低,不推荐使用;

      第四种方法效率也挺好,关键是在遍历的过程中我们可以对集合中的元素进行删除。

    一些方法:keySet(),values(),entrySet()---getKey(),getValue()

    5.forEach只能访问元素,不能修改

  • 相关阅读:
    Flask_自定义参数类型(自定义转换器)
    数据结构与算法(排序)
    数据结构与算法(查找)
    Vue_fetch和axios数据请求
    Vue_修饰符
    Vue_列表过滤应用
    Vue_生命周期函数
    Vue_watch()方法,检测数据的改变
    Django_redis_缓存
    防火墙相关
  • 原文地址:https://www.cnblogs.com/midiyu/p/15173690.html
Copyright © 2011-2022 走看看