JAVA循环的几种方法

一. 迭代器 法

iterator 和 lisIterator (Set、List和Map和这些集合的子类型。而ListIterator只能用于List及其子类型。)
先明确一点:迭代器指向的位置是元素之前的位置。

看一下Iterator和ListIterator迭代器的方法有哪些。
Iterator迭代器包含的方法有:

  • hasNext():如果迭代器指向位置后面还有元素,则返回 true,否则返回false
  • next():返回集合中Iterator指向位置后面的元素
  • remove():删除集合中Iterator指向位置后面的元素

ListIterator迭代器包含的方法有:

  • add(E e): 将指定的元素插入列表,插入位置为迭代器当前位置之前

  • hasNext():以正向遍历列表时,如果列表迭代器后面还有元素,则返回 true,否则返回false
    -hasPrevious():如果以逆向遍历列表,列表迭代器前面还有元素,则返回 true,否则返回false

  • next():返回列表中ListIterator指向位置后面的元素

  • nextIndex():返回列表中ListIterator所需位置后面元素的索引
    -previous():返回列表中ListIterator指向位置前面的元素

  • previousIndex():返回列表中ListIterator所需位置前面元素的索引

  • remove():从列表中删除next()或previous()返回的最后一个元素(有点拗口,意思就是对迭代器使用hasNext()方法时,删除ListIterator指向位置后面的元素;当对迭代器使用hasPrevious()方法时,删除ListIterator指向位置前面的元素)
    -set(E e):从列表中将next()或previous()返回的最后一个元素返回的最后一个元素更改为指定元素

    现在给一个例子完成list遍历操作
    commandline就是一串字符串 "name value name value name value…"这种形式
    代码把name value取出来一对一对放入HashMap

        Map<String, String> valueMap;
        valueMap = new HashMap<>();
        ListIterator<String> commandIterator = 
        Arrays.asList(CommandLine.split("\\s+")).listIterator();
          //正则表达式中\s匹配任何空白字符,包括空格、制表符、换页符等等, 
         //等价于[\f\n\r\t\v];如果是\\s只有空格和tab
        while (commandIterator.hasNext()) {
            String name= commandIterator.next()
            if(commandIterator.hasNext()){
                String value=commandIterator.next();  
            }
        }

二.forEach法

commandLine 是形式如 "name:value,name:value,name:value…"的字符串
先安装逗号切开,再冒号隔开,一对对存入hashMap

        Map<String, String> schemaMap;
        schemaMap=new HashMap<>();
        Arrays.asList(commandLine.split(",")).
                stream().
                forEach(flag->{
                    String[] nameValue=flag.split(":");
                    schemaMap.put(nameValue[0],nameValue[1]);
                });
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值