传智播客旗下技术交流社区北京校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 你亲爱的爸爸 初级黑马   /  2019-1-8 16:45  /  68 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 小石姐姐 于 2019-1-10 09:28 编辑



问题标题
Iterator运用方面错误
问题分类

一级话题
  1 个错误
问题补充

附件
[Java] 纯文本查看 复制代码
public  class Test08 {
      public static void main(String[] args) {
          ArrayList<String> arr = new ArrayList<>();
          arr.add("音乐");
          arr.add("旅游");
          arr.add("看书");
          arr.add("跑步");
          arr.add("音乐");
          arr.add("音乐");
          arr.add("旅游");
          arr.add("游泳");
  
          ArrayList<String>str = new ArrayList<>();
          Iterator<String> it =  arr.iterator();
          while (it.hasNext()){
          if(!str.contains(it.next();)){
              str.add(it.next(););
              }
            }
          System.out.println(str);
      }
  }
问题答案
问题分析:
  
15,16 行错误,但不报错,  it.next需要接收,连续执行两次it.next 会跳过一个数据。
  
问题解决方法:
  
修改代码第15,16行
  
String s=  it.next();
  if(!str.contains(s)){
  
  

分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马