如何取出set中的元素_Java中如何遍历List , Set, Map

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

Iterator 接口定义如下:

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

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

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

498ce192f19bd1f65661786fb4307e6e.png

两者区别是:

    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.testnggroupId>            <artifactId>testngartifactId>            <version>7.0.0version>        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            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());;        }            }    }

我们来看下执行结果:

886ea23efecdc62825f5f4e913de1c9a.png

Story:

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

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

fa4c837619260e2400a2d8aa35a7bb74.gif c0019b656789b88bfa0a22b8155f63eb.gif 2c0025392d459d035eaf455b1ab0cf20.gif 6e05ce3ffa06f36e595a2ec3608ea37a.gif 9a1208d3c92452c9b44de76f5f7d3961.gif 01f8e347d34a3511ec986eeddf266730.gif 26988c8d2732d4ee9f5540fefdd2faf5.gif ed50792aa01554d25fbf3695f82669ab.gif 103b05ddc4198f4bc04c155be804aa32.gif d030077c8605101593dbd467f4310c45.gif 6df71684c2330e3079b7090a1af6570d.gif b323d5ac168595a3198eecd828527050.gif 6e05ce3ffa06f36e595a2ec3608ea37a.gif 252f5ab55cdf8e7f50effc3e82065ef1.gif

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

bc8b6c671d48d90516997b70e35b01a1.png

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

bc8b6c671d48d90516997b70e35b01a1.png 6de7f292af69ceeeb14a9e97c38d9f02.png

关注我们

方便拉您进群互动

3b75705a74ff8b30641d8cd55f0fe63b.png

测试常用Linux命令

测试工程师成长笔记

统计代码覆盖率-Python

CI/CD DevOps论述

Jmeter接口测试与数据驱动

89dcbf36fa293aebf3901867a1a66849.png

e12a9e55017ca3a3165c8b691034d69f.gif

8d294c3d4e87f18a01b3f935a0b1759b.png

1acfc3c68bdd75ae24cbc56910e79375.gif

208e693ca775d91b389506e38bc4fab0.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值