C# arraylist中add方法的使用?

add添加的是对象比如我添加了一个a如果对象a被改动后来我又add了a那么arraylist中的两个对象是不是一样?换句话说:arraylist有没有可能用add方法,记... add添加的是对象 比如我添加了一个a 如果对象a被改动 后来我又add了a 那么arraylist中的两个对象是不是一样?
换句话说:arraylist有没有可能用add方法,记录同一个对象a在不同时刻下的不同状态?
假如这种方法不行,那么我该怎样实现我的目的?
展开
 我来答
称唬
推荐于2017-09-24 · 超过26用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:24.3万
展开全部
引用类型不能记录不同状态。其指向同一内存块记录数据,改变一个的具体值另外一个引用也会变化。

需要实现请参照如下:

if(a.GetType().IsValueType )
arraylist.Add(a);
else
arraylist.Add(a.Clone());
百度网友436fd9b11
2011-05-05 · TA获得超过107个赞
知道答主
回答量:56
采纳率:0%
帮助的人:22万
展开全部
如果a对象是引用类型,那么添加两次同一个对象到arraylist里面,因为添加了同一个对象的引用,所以两个引用指向的是同一块内存区。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-05-06
展开全部
你的问题不在于ArrayList,而在于下面4句程序中.

String[] fieldlinestr = fieldline.split("=");
HashMap map = new HashMap();
map.put("name", fieldlinestr[0].toUpperCase());
map.put("value", fieldlinestr[1]);

当 fieldline不是这种形式的时候: name=value(也就是没有等号的时候),
以上代码就会抛出异常,因为split()后得到的 fieldlinestr 的长度只有1,
那么你调用map.put("value", fieldlinestr[1]); 就会出ArrayIndexOutOfBoundsException: 1 这种异常

简单的办法是在HashMap map = new HashMap();上面加入一个fieldlinestr数组长度的判断.
另外,站长团上有产品团购,便宜有保证
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
马千玉
2011-05-05 · TA获得超过105个赞
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
打死
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式