List对象remove方法的使用

原创 2013年12月04日 10:11:43

 

package hb.list;

import hb.util.Person;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;

public class RemoveListObject {

	public static void main(String[] args) {
		LinkedList list = new LinkedList();
		for(int i = 0 ; i < 6; i++){
			Person p = new Person();
			p.setName("name" + i);
			p.setPassword("password"+i);
			list.add(p);
		}
		//LinkedList有克隆的方法,但是接口List是没有的
		List list2 = (List)list.clone();
		
		printList(list);
		
		//遍历的长度一定要是list.size(),因为后面移除对象之后就会导致list长度变化,如果使用常量,会导致边界异常
		//例如:长度是100,删除掉了50个,而获取list对象的51个,则会爆边界异常,因此是使用list.size()
		for(int i=0;i<list.size();i++){
			Person obj = (Person)list.get(i);
			if(obj.getName().equals("name3")){
				list.remove(i);
				//for循环是先根据中间的值判断是否为true,然后再执行后面的i++
				i--;
			}
		}
		
		printList(list);
		
		//一般我们使用
		Iterator it = list2.iterator();
		while(it.hasNext()){
			Person tempobj = (Person)it.next();
			if(tempobj.getName().equals("name2")){
				//移除当前的对象
				it.remove();
			}
		}
		printList(list2);
		
	}
	
	public static String printList(List list){
		String result = "";
		for(int i=0; i< list.size();i++){
			result = result + ((Person)list.get(i)).getName()+"----";
		}
		System.out.println(result);
		return result;
	}
}

 

原因:List每remove掉一个元素以后,后面的元素都会向前移动,此时如果执行i=i+1,则刚刚移过来的元素没有被读取。

Java中List集合里Contains和Remove方法的本质

一、课题的来源、研究的目的意义(包括在我国应用的前景)、国内外研究现状及水平。 无线传感器网络(Wireless Sensor Network,WSN)是一种大规模、自组织、无线多跳、以数据为中心的无...
  • syaguang2006
  • syaguang2006
  • 2014年11月19日 15:53
  • 1707

Iterator的remove方法可保证从源集合中安全地删除对象

如果对正在被迭代的集合进行结构上的改变(即对该集合使用add、remove或clear方法),那么迭代器就不再合法(并且在其后使用该迭代器将会有ConcurrentModificationExcept...
  • hustwht
  • hustwht
  • 2016年08月11日 13:34
  • 3317

python中关于list remove不得不说的秘密

在python 中进行一次简单的列表循环,当用到remove时出现了一个很有趣的现象, 代码如下: a=range(30) for i in a :     if i%4!=0:         a...
  • guan666
  • guan666
  • 2017年05月09日 21:23
  • 1256

List对象remove方法的使用

一、源程序String str1 = new String("1"); List.remove() Iterator it = list.iterator(); while(it.hasNext(...
  • madman0621
  • madman0621
  • 2017年08月02日 22:27
  • 95

关于List,ArrayList中remove(object obj)方法不能删除对象问题

先看下面代码,大家猜猜打印的结果是什么?为什么? packageshiyan; importjava.util.ArrayList; importjava.util.List; public...
  • ws992077171
  • ws992077171
  • 2012年08月12日 10:40
  • 5684

关于JAVA中使用remove方法循环删除list中元素的常见误区

在开发中,对list中的元素进行删除是很常见的,但如若不注意,很容易走入误区,这是自己切实碰到的,记录下来给自己一点警示:1)错误1:循环遍历for(int i=0;i...
  • qq_29463709
  • qq_29463709
  • 2017年12月04日 11:09
  • 104

list add set remove方法

list中add set 和 remove介绍
  • dalang_1234
  • dalang_1234
  • 2017年03月09日 20:26
  • 171

Java编程:List.remove()、equals() 方法解惑

下午写了一段代码,大致的处理的业务是这样的: 有一个 TreeNode 类型的 List,TreeNode 有一个 nodeId 属性, 如果 nodeId 字符串的第 index 索引位置的字符不...
  • claram
  • claram
  • 2016年11月28日 19:25
  • 800

Java list.remove( )方法需要注意的两个地方

list.remove最近做项目的过程中,需要用到list.remove()方法,结果发现两个有趣的坑,经过分析后找到原因,记录一下跟大家分享一下。代码直接上一段代码,进行分析。public clas...
  • DeMonliuhui
  • DeMonliuhui
  • 2017年07月13日 14:41
  • 2200

Java 集合之List 集合的删除方法顺序分析以及remove和removeAll区别

接下来看 remove()方法 public class TestList { public static void main(String args[]) { // 结果: Hello ...
  • AsheAndWine
  • AsheAndWine
  • 2017年05月09日 16:37
  • 2697
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:List对象remove方法的使用
举报原因:
原因补充:

(最多只允许输入30个字)