`
wang吖
  • 浏览: 235775 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java List 的remove() 方法的应用

 
阅读更多
今天在用List的remove()方法的时候遇到了一个小问题,由于remove方法是根据list的下标索引区删除一个元素的,所以每次remove掉一个元素之后list的总长度就会减去1,而且List后面的元素会自动的去覆盖前一个被删除元素,如此容易出现下标越界的异常,为了解决这个问题:建议循环遍历List的时候倒叙遍历
程序代码:

List<String> list = new ArrayList<String>();
list.add("xxx1");
list.add("xxx2");
list.add("xxx3");
list.add("xxx4");
list.add("xxx5");
for (int i = list.size(); i >=0 ; i--) {
if (i == 2 || i == 3) {
list.remove(i);
}
}

for (String str: list) {
System.out.println("str------------>" + str);
}



输出为:
str------------>xxx1
str------------>xxx2
str------------>xxx5

如此就会避免问题
分享到:
评论

相关推荐

    java 面试题 总结

    当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 17、abstract class和interface有什么区别? 声明方法...

    集合框架练习.doc

    listIterator() 方法可以获取 List 集合的迭代器,然后使用 hasNext() 方法检查是否还有下一个元素,如果有,则使用 next() 方法获取该元素,并使用 equals() 方法检查是否等于"abc",如果等于,则使用 remove() ...

    JAVA中常用的集合类型

    Java 中的集合类型 Java 中的集合类型是指在 Java 语言中用于存储和操作数据的高级数据类型。...Java 中的集合类型提供了多种方式来存储和操作数据,开发者可以根据需要选择合适的集合类型来实现自己的应用程序。

    超级有影响力霸气的Java面试题大全文档

    当应用程序在对象上调用了一个需要花费很长时间来执行的方法,并且不希望让程序等待方法的返回时,就应该使用异步编程,在很多情况下采用异步途径往往更有效率。 20、abstract class和interface有什么区别? ...

    java遍历特例

    java Map 遍历方法 Map map = new HashMap(); Iterator it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); Object key = entry.getKey(); ...

    Java常见面试题208道.docx

    面试题包括以下十九部分:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql...

    Java数据库查询结果的输出

     利用Java开发数据库应用时,经常需要在用户界面上显示查询结果。我们可以利用Vector、JTable、AbstractTableModel等三个类较好地解决这一问题。 类Vector:  定义如下: public class Vector extends ...

    数据结构与算法分析Java语言描述(第二版)

    表、栈和队列3.1 抽象数据类型3.2 表ADT3.2.1 表的简单数组实现3.2.2 简单链表3.3 JavaCollectionsAPI中的表3.3.1 Collection接口3.3.2 Iterator接口3.3.3 List接口、ArrayList类和LinkedList类3.3.4 例:remove...

    数据结构与算法分析_Java语言描述(第2版)]

    表、栈和队列3.1 抽象数据类型3.2 表ADT3.2.1 表的简单数组实现3.2.2 简单链表3.3 JavaCollectionsAPI中的表3.3.1 Collection接口3.3.2 Iterator接口3.3.3 List接口、ArrayList类和LinkedList类3.3.4 例:remove...

    史上最全java面试,103项重点知识,带目录

    29. 在 Queue 中 poll()和 remove()有什么区别? 12 30. 哪些集合类是线程安全的? 12 31. 迭代器 Iterator 是什么? 12 32. Iterator 怎么使用?有什么特点? 12 33. Iterator 和 ListIterator 有什么区别? 13 三...

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版) 1/2

    《JavaServer Faces 2.0完全参考手册》提供了一个综合的示例应用程序,可以将其用作您自己的jsf应用程序的模型。该示例应用程序的代码可以从网上下载。《JavaServer Faces 2.0完全参考手册》对所有jsf功能都进行了...

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版).part1

    《JavaServer Faces 2.0完全参考手册》提供了一个综合的示例应用程序,可以将其用作您自己的jsf应用程序的模型。该示例应用程序的代码可以从网上下载。《JavaServer Faces 2.0完全参考手册》对所有jsf功能都进行了...

    数据结构与算法分析 Java语言描述第2版

    表、栈和队列3.1 抽象数据类型3.2 表ADT3.2.1 表的简单数组实现3.2.2 简单链表3.3 JavaCollectionsAPI中的表3.3.1 Collection接口3.3.2 Iterator接口3.3.3 List接口、ArrayList类和LinkedList类3.3.4 例:remove...

    ArrayList.java

    此类的返回的迭代器 iterator和listIterator方法是快速失败的 :如果列表在任何时间从结构上修改创建迭代器之后,以任何方式,除了通过迭代器自身的remove或add方法,迭代器都将抛出ConcurrentModificationException...

    数据结构与算法分析_Java语言描述(第2版)

    《数据结构与算法分析:Java语言描述(第2版)》是国外数据结构与算法分析方面的经典教材,使用卓越的Java编程语言作为实现工具讨论了数据结构(组织大量数据的方法)和算法分析(对算法运行时间的估计)。...

    数据结构与算法分析-Java语言描述(第2版)_2_2

    remove方法对linkedlist类的使用 3.3.5 关于listiterator接口 3.4 arraylist类的实现 3.4.1 基本类 3.4.2 迭代器、java嵌套类和内部类 3.5 linkedlist类的实现 3.6 栈adt 3.6.1 栈模型 3.6.2 栈...

    数据结构与算法分析-Java语言描述(第2版)_1_2

    remove方法对linkedlist类的使用 3.3.5 关于listiterator接口 3.4 arraylist类的实现 3.4.1 基本类 3.4.2 迭代器、java嵌套类和内部类 3.5 linkedlist类的实现 3.6 栈adt 3.6.1 栈模型 3.6.2 栈...

    中文分词工具word-1.0,Java实现的中文分词组件多种基于词典的分词算法

    保留停用词:List&lt;Word&gt; words = WordSegmenter.segWithStopWords("杨尚川是APDPlat应用级产品开发平台的作者"); System.out.println(words); 输出: 移除停用词:[杨尚川, apdplat, 应用级, 产品, 开发平台, 作者...

    Android开发人员不得不收集的代码

    指定编码按行读取文件到List readFile2List 指定编码按行读取文件到StringBuilder中 readFile2SB byte单位转换(单位:unit) byte2Unit 获取文件大小 getFileSize 关闭IO closeIO 根据全路径获取最长目录 ...

Global site tag (gtag.js) - Google Analytics