import java.util.*;
public class object {
public static void main(String[] args) {
String str1 = new String("abcde");
String str2 = new String("abcde");
String str3 = new String("abcde");
String str4 = new String("abcde");
String str5 = new String("abcde");
List list = new ArrayList();
list.add(str1);
list.add(str2);
list.add(str3);
list.add(str4);
list.add(str5);
System.out.println("list.size()=" + list.size());
for (int i = 0; i < list.size(); i++) {
if (((String) list.get(i)).startsWith("abcde")) {
list.remove(i);
}
}
System.out.println("after remove:list.size()=" + list.size());
}
}
运行结果不是:
list.size()=5
after remove:list.size()=0
居然是:
list.size()=5
after remove:list.size()=2
原因:List每remove掉一个元素以后,后面的元素都会向前移动,此时如果执行i=i+1,则刚刚移过来的元素没有被读取。
解决方法:
1.倒过来遍历list
for (int i = list.size()-1; i > =0; i--) {
if (((String) list.get(i)).startsWith("abcde")) {
list.remove(i);
}
}
2.每移除一个元素以后再把i移回来
for (int i = 0; i < list.size(); i++) {
if (((String) list.get(i)).startsWith("abcde")) {
list.remove(i);
i=i-1;
}
}
3.使用iterator.remove()方法删除
for (Iterator it = list.iterator(); it.hasNext();) {
String str = (String)it.next();
if (str.equals("chengang")){
it.remove();
}
}
分享到:
相关推荐
首先,让我们了解Java中最常用的列表接口`List`,它提供了多种操作集合的方法,包括添加、删除、查找等。在Java中,我们可以使用`ArrayList`或`LinkedList`来实现列表,它们各有优缺点。`ArrayList`适合于随机访问和...
本项目实现了一个简单的通讯录系统,具备添加联系人、删除联系人和查找联系人等功能,下面将详细阐述这些知识点。 1. **面向对象编程**:Java是面向对象的语言,通讯录可以被看作是一个对象,其中每个联系人都是一...
j2se小应用,输入文件后缀名,批量删除文件
二分查找算法不仅可以用于查找,还可以进行一些变体操作,如插入、删除和查找最近的元素等。在高级数据结构如平衡二叉搜索树(AVL 树、红黑树等)中,二分查找的概念也被广泛运用。理解并熟练掌握二分查找算法对于...
通过理解其基本操作,如创建、插入、查找和删除,以及如何处理不平衡问题,你可以构建出强大的数据存储和检索系统。在实际项目中,结合文件操作,可以实现持久化存储,提高应用程序的灵活性和实用性。
java课程设计,字符串的查找,删除等基本操作
### Java二分查找算法知识点详解 #### 一、二分查找算法概述 二分查找算法是一种在有序数组中查找特定元素的搜索算法。其工作原理是通过将目标值与数组中间元素进行比较来缩小搜索范围,进而达到快速查找的目的。...
总的来说,这个Java实现的工具提供了便捷的文件查找和管理功能,适用于个人用户和企业环境,有助于清理和优化存储空间。通过理解和定制这个工具,用户可以进一步适应自己的具体需求,提高工作效率。
此脚本首先定义了日志文件的路径,然后使用`find`命令查找一周前(`-mtime +7`)的`catalina.*.log`文件并删除它们。在脚本的后面,`javac`命令被用来编译所有位于`JAVA_SRC`目录下的Java源文件。 另一个脚本`...
标题“Java Swing 查找”意味着我们将探讨如何在Swing应用中实现文本查找或搜索功能。在Swing组件中,我们通常会用到JTextComponent,如JTextArea或JTextField,这些组件用于接收和显示文本。要实现查找功能,我们...
### JAVA删除字符实验知识点 #### 实验目标 本实验旨在通过编写一个Java Applet程序,实现用户输入一段字符串以及一个特定字符,然后程序能够移除该字符串中所有的指定字符,并输出处理后的结果。 #### 实验环境 -...
在Java开发中,图片上传、删除和预览是常见的功能需求,尤其是在Web应用中。这里我们探讨的是如何利用Java和layui插件实现这些功能,并通过POST方法将数据提交到服务端。layui是一款流行的前端UI框架,它提供了丰富...
在IT领域,编程语言是解决问题的关键工具之一,Java作为跨平台的编程语言,常用于开发各种类型的应用,包括系统安全相关的程序。这个标题为“一个用JAVA写的清除EXE病毒文件的代码”的项目,显然是利用Java来编写的...
本项目“mysql_java_interce.rar”提供了一个实现这一功能的实例,包含增加、删除和查找数据库记录的基本操作。接下来,我们将深入探讨相关知识点。 1. **Java数据库连接(JDBC)**: JDBC是Java API,它为Java...
以上就是关于二叉查找树在Java中的基本实现,包括插入、删除、遍历和查询等操作。通过这些操作,我们可以高效地管理一组有序数据,并进行各种数据操作。二叉查找树在实际应用中广泛用于数据库索引、文件系统以及各种...
本文将深入解析如何在Java中实现对二维数组的特定行进行删除的操作,特别是当某行满足特定条件(如该行末尾的数据个数小于等于1)时。 ### Java二维数组删除特定行 #### 1. 理解问题背景 在给定的代码片段中,...
其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;...
在本文中,我们将深入探讨如何使用Java编程语言从TXT文件中读取数据,构建一个平衡二叉树(例如AVL树或红黑树),并实现查找功能以及打印节点的访问路径。首先,让我们理解每个部分的基本概念。 1. **TXT文件读取**...
- 学生管理器可能使用ArrayList或HashMap存储学生对象,ArrayList用于顺序存取,HashMap则提供快速的查找和删除功能,通过学号作为键。 3. **数据库交互**: - 为了持久化数据,系统可能使用JDBC(Java Database ...