文档章节

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

snail-
 snail-
发布于 2015/10/21 21:00
字数 220
阅读 1928
收藏 2
点赞 0
评论 2

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()放到循环里面,每次都生成一个新的对象,更改自身不会对其他元素有影响。

© 著作权归作者所有

共有 人打赏支持
snail-
粉丝 2
博文 44
码字总数 26310
作品 0
杭州
程序员
加载中

评论(2)

snail-
snail-

引用来自“communicated”的评论

与List无关,与User相连。
是的,因为前两个引用的是同一个user!
10书生
10书生
与List无关,与User相连。
listview 滑动更改标题

package com.example.listviewtest; import java.util.ArrayList; import java.util.HashMap; import java.util.Set; import org.w3c.dom.Text; import android.support.v7.app.ActionBarAct......

胡欢哥哥
2015/10/18
96
0
ArrayList线程不安全分析

之前一直听说ArrayList线程不安全的说法,百度了一下不安全的分析和列子,感觉都不太满意,最后边实在不行只好自己分析了。 1、多线程插入测试 代码实例ArrayListTestDemo1.java: package ...

守望者-圣堂刺客
2016/04/24
318
2
C#中的数组类型[],List,Array,ArrayList的区别

using System; using System.Collections; using System.Collections.Generic; namespace SampleList { class CompareArray { public static void CompareContainer() { //[] 的命名空间 Sy......

酷酷小乔
06/26
0
0
设计模式之C#实现---- ProtoType

作者:cuike519的专栏 http://blog.csdn.net/cuike519/ 该模式的意图是:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。那么首先我们应该已经有了一个对象,同时这个对象...

晨曦之光
2012/03/09
52
0
Collection 和 Map 遍历过程的区别

1:Collection 和 Map 都是Java体系为我们提供的强大集合工具,他们的遍历是最多的操作,那么他们有什么不同呢?请看如下代码 import java.util.ArrayList;import java.util.Collection;imp...

刘付kin
2016/12/07
4
0
JSONObject与JSONArray使用

JSONObject与JSONArray Java不像PHP解析和生产JSON总是一个比较痛苦的过程。但是使用JSONObject和JSONArray会让整个过程相对舒服一些。 JsonObject和JsonArray区别就是JsonObject是对象形式,...

beibugulf
2016/11/09
13
0
listView自定义适配器时getView方法里获取传进来的参数问题

各位大神,帮帮忙,解决一个问题,谢谢。问题是:我使用ListView自定义适配器,参数是从调用adapter的页面传过去到适配器的构造函数,总共传两个参数,一个是list,一个是int的类型数据,在适...

huangyoujun
2014/11/03
720
0
小蚂蚁学习mysql性能优化(5)--SQL以及索引优化--需要添加索引的列

在哪些列上添加索引? 1. 通常选择在where从句中,group by从句,order by从句,on从句中出现的列添加索引。 在一些特殊情况下,还会在select从句中所出现的列进行索引,当一个索引包括了查询...

嗜学如命的小蚂蚁
2015/10/02
146
0
ArrayList和LinkedList的区别

一般大家都知道ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因...

小和尚敲代码
2016/02/27
77
0
Db可以使用多数据源 Model不能使用多数据源。这样修改源码是不是Model也可以使用多数据源了?

@JFinal 你好,想跟你请教个问题:DbKit里面 private static Map, Config> modelToConfig = new HashMap, Config>(); 如果是多账套两个账套的model是一样的,这样不是把前面model的数据源给覆...

hellboy126
2014/11/17
94
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

expect(spawn) 自动化git提交和scp拷贝---centos(linux)

**在进行SCP文件拷贝中,往往需要进行用户密码的输入,即用户交互。若采用自动化脚本的方式进行,则可用以下方式: ** #!/usr/bin/expect #设置参数 set src [lindex $argv 0] set dest [lin...

helplove
3分钟前
0
0
用Build来构建对象的写法

如果一个类的属性过多,用构造器来构建对象很难写,因此我们时用Build方式来构建对象。写法大致如下。 import java.io.Serializable;import java.util.Date;public class Log impleme...

算法之名
5分钟前
0
0
利用 acme.sh 获取网站证书并配置https访问

acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书.(https://github.com/Neilpang/acme.sh/wiki/%E8%AF%B4%E6%98%8E) 主要步骤: 安装 acme.sh 生成证书 copy 证书到 nginx/ap...

haoyuehong
18分钟前
2
0
微擎框架内如何根据media_id获取到微信图片的路径

微擎的框架内,图片选择后,获取的是那个字符串是media_id,相当于你这张图片在微信的图片服务器里面的id 要求是:获取https://mmbiz.qpic.cn/mmbiz_jpg/…… 微信图片的路径 而微信并没有根据m...

老bia同学
22分钟前
1
0
Spring boot中日期的json格式化

Model 在model层中,类的日期属性上面添加如下注解: @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh:mm:ss") 参考 Jackson Date格式化教程...

亚林瓜子
24分钟前
2
0
Eclipse:Failed to load the JNI shared library

1.问题背景: 由于我之前使用jdk1.9学习,当使用Luke的时候发现jdk版本过高,需要向下配置jdk,就向朋友拷了一个安装包。重新配置路径后,便开始报错。 2.问题描述: Failed to load the JNI...

tinder_boy
26分钟前
0
0
少儿学习编程课程是否真的适合七八岁的低龄儿童[图]

少儿学习编程课程是否真的适合七八岁的低龄儿童[图]: 天下熙熙皆为利来,天下攘攘皆为利往。 这几年来,乐高教育机构在国内如同雨后春笋般出现,当然关闭/转手的也很多。从教师角度来看,部...

原创小博客
32分钟前
1
0
ES12-词项查询

1.词项查询介绍 全文查询将在执行之前分析查询字符串,但词项级别查询将按照存储在倒排索引中的词项进行精确操作。这些查询通常用于数字,日期和枚举等结构化数据,而不是全文本字段。 或者,...

贾峰uk
40分钟前
2
0
http状态码与ajax的状态值

ajax状态值 1.1 200 & OK:状态请求成功

litCabbage
43分钟前
1
0
iOS动画效果合集、飞吧企鹅游戏、换肤方案、画板、文字效果等源码

iOS精选源码 动画知识运用及常见动画效果收集 3D卡片拖拽卡片叠加卡片 iFIERO - FLYING PENGUIN 飞吧企鹅SpriteKit游戏(源码) Swift封装的空数据提醒界面EmptyView 沙盒文件浏览与分享调试控...

sunnyaigd
46分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部