`
lijunaccp
  • 浏览: 160511 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

遍历集合增删改所引发的问题

 
阅读更多
package com.test;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.concurrent.CopyOnWriteArrayList;

public class ThreadTest10
{

	/**
	 * @param args
	 */
	public static void main(String[] args)
	{
		Collection users = /*new CopyOnWriteArrayList();*/new ArrayList();
		users.add(new User("张三",28));
		users.add(new User("李四",25));
		users.add(new User("王五",31));
		Iterator it = users.iterator();
		
		while(it.hasNext()){
			User user = (User)it.next();
			if("张三".equals(user.getName())){
				users.remove(user);
			}else{
				System.out.println(user);
			}
		}
	}

}

class User implements Cloneable
{
	private String name;
	private int age;

	public User(String name, int age)
	{
		this.name = name;
		this.age = age;
	}

	public boolean equals(Object obj)
	{
		if (this == obj)
		{
			return true;
		}
		if (!(obj instanceof User))
		{
			return false;
		}
		User user = (User) obj;
		if (this.name.equals(user.name) && this.age == user.age)
		{
			return true;
		}
		return false;
	}
	
	public int hashCode(){
		return name.hashCode()+age;
	}
	
	public String toString(){
		return "(name:'"+name+"',age:"+age+")";
	}
	
	@Override
	protected Object clone()
	{
		Object object = null;
		try{
			object = super.clone();
		}catch(CloneNotSupportedException e){
			
		}
		return object;
	}

	public String getName()
	{
		return name;
	}

	public void setName(String name)
	{
		this.name = name;
	}

	public int getAge()
	{
		return age;
	}

	public void setAge(int age)
	{
		this.age = age;
	}
}

分享到:
评论

相关推荐

    jquery写的增删改

    标题"jquery写的增删改"指的是使用 jQuery 实现的数据表或列表的动态操作,即添加(Add)、删除(Delete)和修改(Modify)功能。这些功能在网页应用中十分常见,特别是在处理用户交互和数据管理时。 jQuery 提供了...

    ztree 支持右键 增删改操作

    在描述中提到的“ztree支持右键增删改操作”意味着ZTree允许用户通过鼠标右键点击节点来执行添加、删除和修改等操作,极大地提升了用户的交互体验和工作效率。 **ZTree的基本概念:** 1. **节点(Node)**:ZTree的...

    自己整理的实例增删改

    【描述】"自己整理的实例增删改,自己整理的实例增删改,自己整理的实例增删改"虽然重复,但强调了这些实例是个人独立整理的,可能包括了学习过程中的实践案例、问题解决方案或者项目经验总结,涵盖了如何在实际场景中...

    table增删改操作

    table表格的增删改功能,鼠标左键双击可编辑,下方按钮增加,右侧删除,表格数据计入localstorage,不会因刷新而消失

    用于增删改除的代码

    增删改除代码

    实验训练3 数据增删改操作

    实验训练 3 数据增删改操作 本实验的主要目的是通过实践操作,掌握 MySQL 中的数据增删改操作,包括单记录插入、批量插入、删除、修改等操作。实验内容包括三个部分:插入数据、删除数据和修改数据。 实验 3-1 ...

    htmljavascript增删改

    JavaScript还可以与服务器进行通信,利用Ajax(Asynchronous JavaScript and XML)技术实现数据的增删改。通过XMLHttpRequest或现代浏览器的fetch API,可以发送HTTP请求到服务器,更新数据库,并获取最新的数据。...

    js表格table的增删改

    ### JavaScript 操作 ...综上所述,JavaScript 操作 HTML 表格的增删改功能是非常实用且强大的。通过对这些功能的实现,可以使 Web 应用程序更加灵活和高效。在实际开发中,根据具体需求选择合适的实现方式是关键。

    easyui增删改很好的例子

    这个“easyui增删改很好的例子”是一个实用的学习资源,展示了如何利用EasyUI来实现数据的添加、删除和修改功能。在产品管理和产品分类管理两个子模块中,我们可以看到这些操作的实现,这对于理解和掌握EasyUI的数据...

    国家开放大学 MySQL数据库应用 实验训练3 数据增删改操作

    MySQL数据库应用实验训练3 数据增删改操作 MySQL数据库应用实验训练3 数据增删改操作是国家开放大学提供的实验训练,旨在让学生熟悉 MySQL 数据库的基本操作,包括数据的增删改操作。实验中,学生将学习使用 Insert...

    C# 实现增删改程序

    C# 实现对数据的增删改,数据源是XML

    GridControl增删改查到数据库

    综上所述,"GridControl增删改查到数据库"涉及到的关键技术包括GridControl的使用、LINQ to SQL的数据操作以及数据库交互的完整生命周期。理解并熟练掌握这些知识点,对于开发高效、稳定的数据库应用至关重要。

    django入门-增删改实例

    这个入门实例将引导我们了解如何利用Django进行用户信息的增删改操作,这也是Web应用中常见的功能需求。下面,我们将详细探讨这个主题。 首先,我们需要了解Django的基本结构。一个Django项目通常由多个应用程序...

    简单是mvc增删改程序

    本项目“简单是mvc增删改程序”显然旨在为初学者提供一个基础的教程,帮助他们理解和掌握如何在ASP.NET MVC环境中进行数据操作,如添加、删除和修改记录。以下是关于这个主题的详细知识解释: 1. **ASP.NET MVC架构...

    c#Form窗体增删改操作

    本教程将深入探讨如何在C#窗体模式下使用封装的方式对表格内容进行增删改操作,这对于初学者来说是一份很好的学习资源。教程中包含了一个数据库文件和详细的使用说明,确保你可以顺利地理解和应用这些概念。 首先,...

    ASP增删改插-完整版.zip

    本文将详细解析"ASP增删改插-完整版.zip"中的核心知识点,包括ASP的基础概念、增删改查操作的实现以及在实际应用中的实践。 一、ASP基础 ASP是构建Web应用程序的一种技术,它允许开发者使用HTML、VBScript或...

    ADO.NET增删改

    对于初学者来说,理解ADO.NET的“增删改”(CRUD,Create、Read、Update、Delete)操作是学习数据库编程的基础。 1. **创建(Create)**: 在ADO.NET中,创建新记录通常涉及到打开数据库连接,创建命令对象,编写...

    ZTree右键增删改功能!

    ZTree右键增删改功能! html文件可直接运行!

    QTreeView控件实现节点的增删改并保存入库

    在本文中,我们将深入探讨如何使用Qt库中的QTreeView控件来实现数据的增删改操作,并将其保存到数据库中。QTreeView是一个强大的组件,它允许用户以树形结构显示数据,非常适合组织层次化信息。在这个项目中,我们...

    树形菜单增删改

    这可能涉及到遍历整个树结构,找到满足条件的节点。在数据库中,这可以通过SQL查询实现。 在实际应用中,为了提高性能,我们可能需要实现缓存机制,避免频繁的数据库交互。同时,为了提供良好的用户体验,我们还...

Global site tag (gtag.js) - Google Analytics