Java中如何遍历List , Set, Map

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

Iterator 接口定义如下:

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

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

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

两者区别是:

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

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

List ,Set , Map 下的子类:

Collection
├List
│├LinkedList
│├ArrayList
│└Vector
└Set
 |-HashSet
 └TreeSet
Map
├Hashtable
├HashMap
└WeakHashMap

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

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

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

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

        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>7.0.0</version>
        </dependency>

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

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:

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

关注我们获得更多精彩内容!

赶快来关注吧,这里有你想找的热点内容,这里有你想要的各种资料,还有海量的资源,还在等什么。快来关注,大佬带你开车。

关注我们获得更多精彩内容!

关注我们

方便拉您进群互动

测试常用Linux命令

测试工程师成长笔记

统计代码覆盖率-Python

CI/CD DevOps论述

Jmeter接口测试与数据驱动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值