`
lgzbj2006
  • 浏览: 27681 次
  • 性别: 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基础,你想不到的知识,JVM等,java基础 java细节

    《Java基础入门(第3版)》(Java):课后答案-docx文档

    《Java基础入门(第3版)》是一本针对Java初学者的教材,其课后答案文档提供了对书中习题的解答,旨在帮助读者巩固所学知识。Java是一种面向对象的编程语言,具备跨平台性,由Java虚拟机(JVM)负责解释执行。Java...

    java基础总结大全(笔记).pdf

    Java基础总结大全涵盖了Java编程语言的核心概念,从JVM、JRE和JDK的区别,到环境变量的设置,再到变量的定义和类型转换,深入浅出地讲解了Java的基础知识。 1. JVM、JRE和JDK: - JVM(Java Virtual Machine)是...

    Java基础知识点总结.docx

    Java是一种广泛使用的面向对象的编程语言,其基础知识涵盖了多个方面,包括语法、面向对象特性、异常处理、多线程...以上只是Java基础知识的一个概述,每个话题都值得深入探讨和实践,不断学习和总结是提升技能的关键。

    《Java基础案例教程(第2版)》课后习题答案1

    【Java基础知识点】 1. **Java的起源与特性** - Java是由SUN Microsystems公司(后被Oracle收购)开发的一种面向对象的编程语言。 - Java有三个主要版本:Java Standard Edition (JavaSE),用于桌面应用;Java ...

    java课件 java基础教程

    本教程将深入探讨Java的基础知识,旨在帮助初学者理解和掌握Java编程的核心概念。 1. **Java简介** Java是由Sun Microsystems(后被Oracle收购)于1995年发布的,由詹姆斯·高斯林(James Gosling)领导的团队开发...

    Java基础知识整理

    Java基础知识整理 Java是一种广泛应用于软件开发的编程语言,拥有丰富的基础知识体系。本文将对Java基础知识进行系统性的整理和总结,涵盖面向对象、访问控制权限、Final关键字、内部类、集合等多个方面的知识点。 ...

    java 一些细节知识

    理解它们的区别,特别是在内存分配和值传递方面,是Java编程的基础。 2. **类与对象**:面向对象编程的核心是类和对象。类是创建对象的模板,定义了对象的属性和行为。了解如何定义类,创建对象,以及如何使用构造...

    Java基础入门源代码

    这个"Java基础入门源代码"集合应该是为了帮助初学者理解和实践Java编程基础而设计的。让我们详细探讨一下Java语言的基础知识,以及如何通过源代码学习。 1. **基本语法**:Java的语法与C++和C#类似,它包括类、对象...

    java基础课件 ppt

    这份"java基础课件 ppt"包含了学习Java基础知识的关键内容,对于初学者或是需要巩固基础的开发者来说,是一份宝贵的学习资源。 首先,Java的基础部分通常涵盖以下几个核心概念: 1. **Java环境设置**:学习Java的...

    java基础教程

    从给定的文件片段来看,这是一篇关于Java基础教程的文章,尽管原文中包含了一些乱码和非标准字符,但可以推断出文章试图涵盖Java编程语言的基础概念、语法、环境搭建以及一些高级主题。下面将对这些知识点进行详细的...

    java基础2.pdf

    Java 基础知识点 Java 基础知识点是 Java 编程语言的基础部分,涵盖了 Java 语言的基本概念、变量、数据类型、运算符、控制流语句、方法、数组、类和对象等方面。 方法 Java 中的方法是一组语句的集合,用于执行...

    java 基础知识总结(经典)

    这篇“Java基础知识总结(经典)”涵盖了Java开发中的核心概念和重要知识点,旨在为初学者和有经验的开发者提供一个全面的回顾。以下是主要的学习点: 1. **Java环境配置**:在开始编程之前,必须安装Java ...

    java面试基础

    在准备Java面试时,了解基础概念和技术细节至关重要。本文将基于标题"java面试基础"以及提供的标签"源码"和"工具",结合压缩包中的文档名称,对Java面试中的核心知识点进行深入探讨。 首先,Java语言的基础知识是...

    java基础全套PPT

    这份"java基础全套PPT"提供了全面的学习路径,帮助初学者从零开始掌握Java编程。以下是对15章节内容的详细解释: 1. **Java简介**:这一章会介绍Java的历史背景,由谁创建,以及它在软件开发中的地位。还会讨论Java...

    java基础.doc

    这篇文档涵盖了从安装Java开发环境到深入理解各种核心概念的全面内容,是学习Java基础的绝佳资源。 首先,Java的安装至关重要。要开始Java编程,你需要下载Java Development Kit (JDK)。JDK包含了编译Java代码所需...

    java基础教程PPT

    这份"java基础教程PPT"是专为那些对计算机语言感兴趣的初学者或有一定编程经验的人设计的,它覆盖了Java语言的核心概念和技术,旨在帮助学习者快速掌握Java编程。 教程首先会讲解Java的基础部分,包括语言语法、...

    Java基础Java基础Java基础Java基础.zip

    Java是一种广泛使用的面向对象的编程语言,由Sun ...以上是Java基础知识的一些关键点。深入理解并熟练运用这些概念,将有助于你成为一名合格的Java开发者。在实践中不断探索和学习,你的Java技能将会不断提升。

    java基础重点整理

    【Java基础重点整理】 在Java编程语言中,有几个核心概念和特性是学习者必须掌握的基础知识。这些概念包括面向对象的编程原则、类的访问修饰符、以及Java语言的特性和开发环境。 1. **面向对象的概念** - **变量*...

Global site tag (gtag.js) - Google Analytics