`
lgzbj2006
  • 浏览: 26900 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

java 基础细节

    博客分类:
  • java
阅读更多
经常我们要删除集合中的某些元素。有些可能会这么写。
   
  public void operate(List list){
        for (Iterator it = list.iterator(); it.hasNext();) {
            String str =  (String)it.next();
            if (str.equals("chengang")){
                list.remove(str);
            }
        }
    }
   
  这种写法一运行就会报如下异常:
 
Exception in thread "main" java.util.ConcurrentModificationException
at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
 
  因为list在循环中的时候是不可以删除它的元素的。后来我是这样做的,一种很笨的方法,思路是这样的:创建一个List专门存放要被删除的元素,循环过后,用List.removeAll方法把元素删除。代码如下:
    public void operate(List list){
        List removeList= new ArrayList();
        for (Iterator it = list.iterator(); it.hasNext();) {
            String str =  (String)it.next();
            if (str.equals("chengang")){
                removeList.add(str);
            }
        }
        list.removeAll(removeList);
    } 
  这样也确实可以解决问题了,但是方法实在太笨重,其实可以有更简单的更高效的方法,就是用Iterator.remove方法,如下:
        for (Iterator it = list.iterator(); it.hasNext();) {
            String str =  (String)it.next();
            if (str.equals("chengang")){
                it.remove();
            }
        }

 所以,你对Java的基础知识了解越多,代码就会写得越简洁。相反如果你的代码特别复杂,则方法或设计一定有问题。
List集合可以向Iterator集合转换:Iterator it = list.listIterator();
分享到:
评论

相关推荐

    程序员面试秘籍【Java基础细节】

    为了让更多的Java程序员找到自己理想的工作,这份面试题就是你就是你进入公司最好的敲门砖,望大家多看,小弟刚刚就业,愿与大家分享更多的面试经验。。。。。

    java基础 java细节

    Java基础,你想不到的知识,JVM等,java基础 java细节

    java基础(最容易被忽略的细节)

    java程序员必看的文档,对于巩固java基础、提升技术能力的人来说绝对是最好的选择。

    java基础知识点汇总

    Java 基础知识点汇总 以下是 Java 基础知识点汇总的详细说明: ### 1. 面向对象的特征 面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它强调使用对象和类来组织和结构化代码。面向对象编程的...

    Java 基础思维导图 里面包含理论概念 语句 细节及执行流程图

    java概括 ,Java常用的转义字符 注释类型,变量, Java数据类型 ,运算符 程序流程控制介绍(分支 循环) , 数组 里面包含理论概念 语句 细节及执行流程图 里面内容是通过我在it培训机构及在B站看韩顺平老师的课件...

    java基础测试题目

    JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用...

    Java语言基础.ppt

    Java语言基础,老师课件,有些细节可以看看

    毕向东_Java基础课堂笔记.pdf

    毕向东_Java基础课堂笔记详细整理版不错过任何一个细节

    corejava基础知识

    这个是corejava的一些基础知识。有的时候细节很重要,会解决你很多知识的盲区。

    java基础.txt

    封装 :隐藏内部的实现细节,对外提供公共的接口 123456789101112131415161718192021222324252627282930313233343536373839 继承 继承:extends 拓展和延伸 子类对父类的拓展和延伸 public Person(){ ...

    尚硅谷_佟刚_Java基础_Java类设计

     1.Java类的继承  2.方法的重写、覆盖  3.多态性及其应用  4.成员访问控制  5.对象的创建和初始化细节  6.几种常用的Java类

    Java编程基础和面向对象基础必备知识点.pdf(带书签)

    Java开发者要了解的基础知识,以及一些细节。

    java基础面试一百问.doc

    抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面, 一是过程抽象,二是数据抽象。 B.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述...

    Java基础概念

    抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性...

    Java基础笔记,代码结构

    适合一些卖课程或者有学习过Java的人选。里面是Java一开始需要掌握的一些代码知识和常识,一些基础知识的笔记,Java代码的基本运用和代码里需要掌握的一些细节。

    Java基础精品课10-封装和继承录屏6.继承的语法细节.mp4

    Java基础精品课10-封装和继承录屏6.继承的语法细节.mp4

    java基础知识点总结

    java基础知识最全面、最细节的总结,对于初学者很好用

    计算机后端-Java-Java核心基础-第13章 面向对象05 10. 方法重写的细节.avi

    计算机后端-Java-Java核心基础-第13章 面向对象05 10. 方法重写的细节.avi

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    面向对象编程的基础 要了解面向对象编程(OOP)的基本概念,需要理解 OOP 的三个主要概念,它们撑起 了整个 OOP 的框架。这三个概念是:封装、继承性和多态性。除此以外,还需了解对象、 类、消息、接口、及抽象等...

Global site tag (gtag.js) - Google Analytics