java遍历的几种方式

Iterator

  • 刚创建完Iterator对象时,指针其实指向的是第一个元素的上方,即一个 空

  • hasNext():没有指针下移操作,只是判断是否存在下一个元素

  • next():指针下移,然后返回该指针所指向的元素

  • remove():删除当前指针所指向的元素,一般和next方法一起用,这时候的作用就是删除next方法返回的元素

while(iterator.hasNext() {
     Object item = iterator.next();
     iterator.remove();   //即删除item
     ......
}

List遍历方式:

第一种:

for(Iterator iterator = list.iterator();iterator.hasNext();){                    
    int i = (Integer) iterator.next();                   
    System.out.println(i);               
}

第二种:

Iterator iterator = list.iterator();
while(iterator.hasNext()){
    int i = (Integer) iterator.next();
    System.out.println(i);
}

第三种:

for (Object object : list) { 
    System.out.println(object); 
}

第四种:

for(int i = 0 ;i<list.size();i++) {  
    int j= (Integer) list.get(i);
    System.out.println(j);  
}

Map集合

Map集合没有迭代器(iterator()),遍历集合中的元素可以用以下三种方法:

        Map<String, String> map = new HashMap<>();
        map.put("张三", "123456");
        map.put("李四", "456321");
        map.put("王五", "741852");
        map.put("赵六", "963321");

1.keySet()

将map中的key的部分, 单独取出, 成为set;
遍历这个set,拿到相应的value值

        /*实现步骤:
            1.使用Map集合中的keySet()方法,把Map集合所有的key取出来存储到一个Set集合中
            2.遍历set集合,获取Map中的每一个key--遍历set集合可以使用迭代器或者forEach();
            3.通过Map集合中的方法get(key),通过key找到value   */
        Set<String> set = map.keySet();
        //使用迭代器Iterator遍历Set集合
        Iterator<String> it = set.iterator();
        while (it.hasNext()) {
            String key = it.next();
            String value = map.get(key);
            System.out.println(key + "=" + value);
        }
//        //使用forEach();遍历Set集合
//        for (String key : set) {
//            String value = map.get(key);
//            System.out.println(key + "=" + value);
//        }
//        System.out.println();

2.entrySet()

entrySet方法:将 键值对 封装成一个整体-Entry, 然后将多个Entry对象放到一个Set集合里

        //遍历方式2: entrySet 键值对封装成一个整体-Entry, Set<Entry>
        /*实现步骤:
            1.使用Map集合中的entrySet()方法,把Map集合中多个Entry对象取出来存储到一个Set集合中
            2.遍历set集合,获取每一个Entry对象
            3.使用Entry对象中的getKey()和getValue()方法获取键和值   */
        Set< Map.Entry<String, String> > set1 = map.entrySet();
        for (Map.Entry<String, String> en : set1) {
            String key = en.getKey();
            String value = en.getValue();
            System.out.println(key + "=" + value);
        }
        System.out.println();

3.values()

所有的值存储到一个Collection集合中返回
就只能遍历值, 不能遍历键, 因为map不能反向映射

        Collection<String> values = map.values();
        for (String value : values) {
            System.out.println(value);
        }

java遍历集合的几种方式

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值