前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java中如何遍历List , Set, Map

Java中如何遍历List , Set, Map

作者头像
louiezhou001
发布2020-03-11 10:23:20
1.8K0
发布2020-03-11 10:23:20
举报
文章被收录于专栏:测试工程师成长之道

Java中 List , Set 有共同的父类, 就是Collection. 所有实现Collection的接口的类都有一个iterator方法,用以返回一个Iterator接口的对象.

Iterator 接口定义如下:

Boolean hasNext(); //判断是否有元素没有被遍历

Object next(); //返回游标当前位置的元素并将游标移动到下一个位置

void remove(); //删除游标左边的元素, 在执行完成next() 后该操作只能执行一次

两者区别是:

List允许重复元素, 存储是有序的, 即元素插入和读取的顺序是一致的.

Set不允许有相同的元素存在, 存储是无序的, 也就是插入的元素顺序和读取出来的元素顺序会不一致.

List ,Set , Map 下的子类:

代码语言:javascript
复制
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
└Set
 |-HashSet
 └TreeSet
Map
├Hashtable
├HashMap
└WeakHashMap

子类的区别诸如 实现方式, 是否线程安全等等, 这里就不展开介绍了.

Map 是独立的集合, 采用键值对来存储数据也就是key-value的双列形式, 特点是键不能重复, 值可以重复.

让我们来看下遍历的方式有哪些:

使用Intellij IDE 环境, Maven 中配置文件pom.xml添加testng

代码语言:javascript
复制
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>7.0.0</version>
        </dependency>

创建utl package, 并新建一个ListDemo.java

代码语言:javascript
复制
package utl;

import org.testng.annotations.Test;
import java.util.Map.Entry;
import java.util.*;
public class ListDemo {

    @Test
    public void testList(){

        System.out.println("--------遍历list--------");
        //遍历List
        List  list=new ArrayList();
        list.add("张三");
        list.add("李四");
        list.add("王五");
        list.add("赵六");

        //foreach 循环, 遍历列表
        for(Object str : list ){
            System.out.println("forEach: "+ str);
        }

        //通过Iterator 迭代器遍历列表+"/n"
        Iterator it=list.iterator();
        while (it.hasNext()){
            String str=(String) it.next();
            System.out.println("迭代器: "+str);
        }

        // for循环 遍历列表, ArrayList 查询速度是比较快的, 循环条件是size
        for(int i=0;i<list.size();i++){
            System.out.println("for循环: "+list.get(i));
        }


        //Lambda
        list.forEach(str->{
            System.out.print("Lambda 遍历 : "+str +" ");
        });
        System.out.println("\n");

        System.out.println("--------遍历Set--------");
        //遍历set
        Set set= new HashSet();
        set.add("1点");
        set.add("2点");
        set.add("3点");

        //方式一
        Iterator i= set.iterator();
        while(i.hasNext()){
            System.out.println("set 迭代器: "+i.next());
        }
        //方式二
        for (Iterator iter=set.iterator();iter.hasNext();){
            System.out.println("for循环迭代: "+iter.next());
        }


        System.out.println("--------遍历Map--------");
        //遍历map
        Map map=new HashMap();
        map.put("1","java");
        map.put("2","python");
        map.put("3","C#");

        //方式一
        Set keys=map.keySet();
        for(Iterator iterator=keys.iterator();iterator.hasNext();){
            //String keyStr=(String) iterator.next();
            System.out.println("map 遍历"+map.get(iterator.next()));
        }

        //方式二
        Set s1=map.entrySet();
        for(Iterator iter=s1.iterator();iter.hasNext();){
            Entry e=(Entry)iter.next();
            System.out.println("map Entry "+e.getKey()+"----"+ e.getValue());;
        }
        
    }
    
}

我们来看下执行结果:

Story:

人要有一个奋斗目标,这样活起来才有精神,有奔头。整天无所事事、无聊至极的,就是因为没有目标。从小就要为自己的人生制定一个目标,然后不断地向它靠近,终有一天你会达到这个目标。如果从小就糊里糊涂,对自己的人生不负责任,没有目标没有方向,那这一生也难有作为。每个人出门,都会有自己的目的地,如果不知道自己要去哪里,漫无目的地闲逛,那速度就会很慢;但当你清楚你自己要去的地方,你的步履就会情不自禁地加快。如果你分辨不清自己所在的方位,你会茫然若失;一旦你弄清了自己要去的方向,你会精神抖擞。这就是目标的力量。所以说,一个人有了目标,才会成功。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试工程师成长之道 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档