ArrayList.add后,前面数据被覆盖的问题

1. 代码示例:

public class ListTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        List<User> list =new ArrayList<User>();
        User user=new User();
        user.setName("jack");
        user.setPassword("111");
        list.add(user);
        user.setName("JAY");
        user.setPassword("222");
        list.add(user);
        
        User user1=new User();
        user1.setName("jim");
        user1.setPassword("333");
        list.add(user1);
        
        for(Iterator<User> i = list.iterator();i.hasNext(); ){
        	User str = (User) i.next();
        	System.out.println(str.getName()+"   "+str.getPassword());
        	}
	}
}

User类:
public class User {

	private String name;
	private String password;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}

}

2. 控制台打印信息:

JAY   222
JAY   222
jim   333

3.  解析:add加进去的是对象的一个引用,使用同一个对象时,每次都更新了这个引用的值,所以list里面的值都一样的。如果使用for等循环时,注意把User user=new User()放到循环里面,每次都生成一个新的对象,更改自身不会对其他元素有影响。

时间: 2024-12-16 21:11:25

ArrayList.add后,前面数据被覆盖的问题的相关文章

电脑重装系统后硬盘数据如何恢复

在电脑的使用过程中,重装系统是一种比较常见的操作.平时不需要经常重装系统,但是为了提高系统稳定性,清理系统垃圾,解决系统崩溃问题等,有时候必须对电脑进行重装系统.所以, 了解一些重装系统以及电脑重装系统后怎样数据恢复的知识还是很有必要的. 首先我们了解一下,重装系统之后,电脑分区有什么变化,数据是不是丢失了呢?如果将新旧分区重叠对比分析,大家会发现重装系统只是破坏了C盘前几G的空间,后面的数据完整的存在于硬盘内.也就是说,如果重装系统后,能很好的保护现场,不再分区与拷入数据,原D.E.F.G盘数

硬盘被格式化后的数据要如何恢复

格式化硬盘这一操作对于大家来说都不陌生.当你需要格式化硬盘的时候,千万要记住你的所有重要文件都已经备份,否则格式化之后所面临的是数据丢失这样严重的后果.如果你没有进行有效备份,是否还有机会恢复硬盘被格式化之后的数据呢? 首先我们来了解一下什么是格式化.格式化是指对磁盘或磁盘中的分区(partition)进行初始化的一种操作,这种操作通常会导致现有的磁盘或分区中所有的文件被清除. 那么我们为什么要对硬盘进行格式化呢? 硬盘必须先经过分区才能使用,磁盘经过分区之后,下一个步骤就是要对硬盘进行格式化(

FFMPEG结构体分析:AVFrame(解码后的数据)

https://blog.csdn.net/jxcr1984/article/details/52766524 本文转自: http://blog.csdn.net/leixiaohua1020/article/details/14214577 /*   *雷霄骅   *[email protected]   *中国传媒大学/数字电视技术   */   /**   * Audio Video Frame.   * New fields can be added to the end of AVF

U盘格式化后的数据怎么恢复?

U盘在我们日常办公中起到很重要的数据保存作用,但是会因误操作将U盘格式化,那么U盘上保存了的那么多的重要的资料.照片.工作数据等还可以恢复吗?答案是"可以恢复",就需要借助咱们的迷你兔数据恢复软件,U盘上被格式化的数据都能恢复回来. 当U盘上的文件因为格式化而丢失,它是不会出现在回收站中的,所以对大多数不进行数据恢复的用户来说,这些丢失的数据相当于永久删除了. 在硬盘上,那些丢失的文件,只要删除文件后没有建立新的文件,该分区没有写入新的数据,这些被删除的文件数据将会一直存在,所以这时候

电脑重装系统后丢失数据怎么找回?

当电脑出现一些故障的时候,我们选择电脑重装系统,但是重装系统后最大的问题是会造成数据的丢失,那么丢失的数据还能找回吗?那应该如何找回电脑重装系统后的数据呢?继续往下看. 重装系统影响最大的是C盘,所以大多保存在C盘里的数据都会丢失,如果没有备份的话,那么在接下来的操作中就不要在对电脑磁盘进行数据的写入,不然覆盖了数据之后,就会导致恢复难度加大,更严重的是数据就无法找回了 第一步:打开迷你兔数据软件,点击左下侧的"开始恢复",进入磁盘扫描界面 第二步:左边显示"我的电脑&quo

php 表单提交错误后返回数据消失问题的解决方法

本文章向码农们介绍php 表单提交错误后返回数据消失问题的解决方法,感兴趣的码农可以参考一下. 表单提交错误后返回数据消失怎么办呐,今天就来分析解决一下这个问题. 状况概述: 做填写表单信息提交的时候会碰到一个问题就是当用户填写并提交表单后,程序判断不符合要求并返回,返回之后之前填写的表单信息会被清空了的情况.如果填写的信息量少还无所谓,如果填写的信息量比较多,这会直接打击到填写信息的人的良好心情.因此解决表单提交错误返回后填写的内容消失的问题是一个提高用户体验度的迫在眉睫的问题. 对于这种问题

如何用perl将表格中不同列的数据进行拼凑,然后将拼凑后的数据用“|”连接在一起

最近写了一个perl脚本,实现的功能是将表格中其中两列的数据进行拼凑,然后将拼凑后的数据用“|”连接在一起. 表格内容如下: 员工号码 员工姓名 职位 入职日期 1001 张三 销售 1980/12/17 0:00:00 1002 李四 财务 1981/02/20 0:00:00 1003 王五 经理 1981/02/22 0:00:00 1004 陈二 会计 1981/04/02 0:00:00 要求如下: 将员工姓名和入职日期用键值对的形式拼凑在一起,然后将拼凑后的数据用“|”连接在一起.

SQLSERVER中返回修改后的数据

在公司看到同事写了个SQL2005的新特性的文章,觉得很实用,在这里和大家分享下. 这种技术主要是用到了inserted和deleted虚拟表,这两张表相信大家都很熟悉.以前我们主要是在触发器中使用. 我们先来复习下这两个表: Inserted和Deleted这两个表是逻辑表,并且这两个表是由系统管理的,存储在内存中,不是存储在数据库中,因此,不允许用户直接对其修改.这两个表的结构与被该触发器作用的表在相同的表结构.这两个表是动态驻留在内存中的,当触发器工作完成,它们也被删除. 接下来,看看我们

调用contact某个联系人资料后返回数据到原来的Activity

package com.example.sample_5_10; import android.app.Activity; import android.app.Instrumentation.ActivityResult; import android.content.CursorLoader; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import androi