在线等:两个list循环赋值问题。。。谢谢先

lishuiqing 2008-04-02 07:09:01
两个list,我把list1里面的值经过计算后,传入一个新的list2里面,结果发现list2里面的值都是一样的,都是list1最后的那个值经过计算之后的值。
要怎么样才可以实现目的。

我的语句是:
ArrayList list2 = new ArrayList();
for(int temp = 0;temp<list1.size();temp++)
{
list2.add(list1.get(0).toString()+temp);
}

结果上面的打印出来发现list2里面的东西都是一样的了!!

怎么做。。。谢谢
...全文
1119 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
hbycjj 2008-04-09
  • 打赏
  • 举报
回复

public class Test {

public static void main(String[] args) {

ArrayList list1 = new ArrayList();
list1.add("a");
list1.add("b");
list1.add("c");
ArrayList list2 = new ArrayList();
for(int i = 0; i < list1.size(); i++)
{
list2.add(list1.get(i).toString());
}
for(int i = 0; i < list2.size(); i++)
{
System.out.println(list2.get(i));
}
}
}

------------------------结果--------
a
b
c

cz__wp 2008-04-07
  • 打赏
  • 举报
回复
ArrayList list1 = new ArrayList(2);
list1.add("123");
list1.add("334");
ArrayList list2 = new ArrayList(2);
for(int i=0;i<list1.size();i++)
{
list2.add((String)list1.get(i)+i);
}

for(int i=0;i<list2.size();i++)
{
System.out.println(list2.get(i));
}

执行结果:
1230
3341


很显然不存在你上面说得问题
java_mobile 2008-04-05
  • 打赏
  • 举报
回复
字符串型与整型做“+”操作会自动的将整型转化为字符型吧...
和海风 2008-04-05
  • 打赏
  • 举报
回复
list2.add(list1.get(temp).toString()+temp);
queshangxintou 2008-04-04
  • 打赏
  • 举报
回复
你的ArrayList的类型呢
lv810 2008-04-04
  • 打赏
  • 举报
回复
ArrayList list2 = new ArrayList(list2);
wenlz123 2008-04-03
  • 打赏
  • 举报
回复
import java.util.List;
import java.util.ArrayList;

public class test {
public static void main(String[]args){
List list1=new ArrayList();
list1.add(1);
list1.add(2);
list1.add(3);
ArrayList list2=new ArrayList();
for(int temp=0;temp<list1.size();temp++){
list2.add(list1.get(temp).toString());
}
for(int temp=0;temp<list2.size();temp++){
System.out.println(list2.get(temp).toString());
}
}
O溺水的鱼0 2008-04-03
  • 打赏
  • 举报
回复
namespace test
{
class Program
{
static void Main(string[] args)
{
ArrayList list1 = new ArrayList();
for (int i = 0; i < 10; i++)
{
list1.Add(i.ToString()+"a");
}
ArrayList list2 = new ArrayList();
for (int temp = 0; temp < list1.Count; temp++)
{
list2.Add(list1[temp]);
}



foreach (object one in list2)
{
Console.WriteLine(one.ToString());
}
Console.ReadLine();
}
}
}

这样可以实现你要的结果,编程时候自己小心点,这样的错设置断点基本都可以解决.
lishuiqing 2008-04-02
  • 打赏
  • 举报
回复
对不起,我把问题复杂了,上面的是我错了,你们是对的。

我以后发帖会小心了,让你们笑话了,呵呵。

lishuiqing 2008-04-02
  • 打赏
  • 举报
回复
看来我的问题问答有毛病了,我再重复一下,这个问题不是那么简单的,希望大家仔细想想,谢谢。

ArrayList list2 = new ArrayList();
for(int temp = 0;temp <list1.size();temp++)
{
list2.add(list1.get(temp).toString()+temp);
}

上面结果你调试进去看list2发现也会都是一样的,不是通常以为的就可以实现了传值了。。。。。。

不信你们试试。。。!!
iskyshop 2008-04-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 lishuiqing 的帖子:]
两个list,我把list1里面的值经过计算后,传入一个新的list2里面,结果发现list2里面的值都是一样的,都是list1最后的那个值经过计算之后的值。
要怎么样才可以实现目的。

我的语句是:
ArrayList list2 = new ArrayList();
for(int temp = 0;temp <list1.size();temp++)
{
list2.add(list1.get(0).toString()+temp); //list1.get(0).toString()是字符串,temp是int,这里怎么能够这样!!!
}

结果上面的打印出来发现list2里面的东西都是一样的了!!

怎么做。。。谢谢
[/Quote]
薛定谔之死猫 2008-04-02
  • 打赏
  • 举报
回复
这么常见的操作出现像你说的情况的概率如同在大街上被雷连劈七次
hendy 2008-04-02
  • 打赏
  • 举报
回复
怎么回一样啊,明显不一样啊
iskyshop 2008-04-02
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lishuiqing 的回复:]
我晕,上面的是我随便写点一个啊,就算是改成temp也是出现一样的效果,全部是一样的。。。
[/Quote]
不可能,至少temp不一样哈!!!
薛定谔之死猫 2008-04-02
  • 打赏
  • 举报
回复
是不是你的toString实现有问题?
lishuiqing 2008-04-02
  • 打赏
  • 举报
回复
我晕,上面的是我随便写点一个啊,就算是改成temp也是出现一样的效果,全部是一样的。。。
creazywind 2008-04-02
  • 打赏
  • 举报
回复
list1.get(0)
薛定谔之死猫 2008-04-02
  • 打赏
  • 举报
回复
哈哈,get(0),下标得改一下吧,你加的都是同一个元素
healer_kx 2008-04-02
  • 打赏
  • 举报
回复
lz,你太粗心了,不过我经常犯这样的错误,你看这里,你写的...
list2.add(list1.get(0).toString()+temp);
jmslyz 2008-04-02
  • 打赏
  • 举报
回复
ArrayList list2 = new ArrayList();
for(int temp = 0;temp <list1.size();temp++)
{
list2.add(list1.get(temp).toString()+temp);
}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧