当前位置: 首页 > 面试题库 >

对于每个vs迭代器。哪个是更好的选择

皮自明
2023-03-14
问题内容

请考虑以下情形。

List<String> list = new ArrayList<>();

现在,我String为该列表添加了值。

我使用以下方法访问列表中的每个元素。

选项一-用途 for-each

for (String i : list) {
        System.out.println(i);
    }

选项二-用途 Iterator

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

我只想知道如果我使用for-each代替,会有什么性能上的优势Iterator。而且现在在Java中使用Iterator也是一种不好的做法吗?


问题答案:

for-each是要使用的语法糖iterators(方法2)。

iterators如果需要在循环中修改集合,则可能需要使用。第一种方法将引发异常。

for (String i : list) {
    System.out.println(i);
    list.remove(i); // throws exception
}

Iterator it=list.iterator();
while (it.hasNext()){
    System.out.println(it.next());
    it.remove(); // valid here
}


 类似资料:
  • 问题内容: 为了观看对象作用域变量,将其设置为true还是更好? 对于一个对象变量(如15点的属性,一些嵌套2级深)与输入元件和更新在视图中,有多差与设定为?这是要避免的大事吗? 是一个更好的解决方案? 我正在寻找轻松的方式来提高AngularJS应用程序的性能(我仍然停留在v1.2.2上)。 问题答案: 该功能是上述两种配置之间的中间地带。它比普通的$ watch()函数更深入;但是,它几乎不像

  • 问题内容: 哪个最好,换句话说,最容易使用?条纹或JSF。 尽管我并没有因为愤怒而同时使用这两种方法,但是我需要评估在启动新项目和转换现有Struts项目时最好的选择。 我担心JSF的渲染效果不理想,但是其他人会有什么经验呢?似乎条纹要简单得多,在这种假设下我是否正确? 问题答案: 哪个最好,换句话说,哪个最容易使用?条纹或JSF。 哪个最好?好吧,Stripe和JSF是不同的。前者是基于动作的框

  • 问题内容: 使用哪种更好或更方便: 要么 问题答案: 您是否完全需要类型属性?如果您使用的是HTML5,则不会。否则,是的。HTML 4.01和XHTML 1.0 根据需要指定属性,而HTML5具有可选属性,默认为。HTML5现在得到了广泛的实现,因此,如果您使用HTML5doctype,则是有效且不错的选择。 至于type属性中应该包含的内容,2006年注册的MIME类型旨在替代所有主要浏览器(

  • 我发现自己经常遇到这种模式。我有一个从api中返回的对象数组,我只需要操作所有对象中的一个属性。 有没有办法使用ES6/Babel或Typescript让该模式更具声明性? 寻找一些巧妙的破坏技巧或类似的东西。

  • 正如标题所说,多html页面和多jquery-mobile页面哪个更好? 强调: 我所说的多个html页面是指一个以index.html开始的应用程序,当你用你的应用程序导航时,它会将可见页面(通过href)更改为其他html页面,例如another.html,anotherone.html,anothertwo.html等等。 我所说的多个jquery移动页面就是这样一个。 此外,我的意思是更好

  • 我有一个LinkedHashMap,它有一个值(在调试器上检查),但是当我试图使用它作为每个组件的输入时,它抛出了这个错误: 这是我为每个人准备的片段: 非常确定负载不是null和空的,并且是HashMap的实例。我错过什么了吗?谢谢