难道LinkedList内不能放数组?高手求救啊!

sqlink 2004-05-06 03:43:24
LinkedList test=new LinkedList();
int[] temp={0,0};
for(int i=0;i<10;i++){
temp[0]=i+3;
temp[1]=i+9;
test.add(temp);
}
for(int i=0;i<10;i++){
temp=(int[])test.get(i); //这里一定要用int[]强制转型,靠!竟然翻脸不认人
System.out.println(temp[0]);
}

出来的结果竟然是:
12
12
12
12
12
12
12
12
12
12
我的期望结果是:
3
4
5
6
7
8
9
10
11
12
请高手解释一下什么原因!谢谢
...全文
43 13 点赞 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
BigBangBug 2004-05-06
楼主主要没有理解指针的概念,你的temp只是一个指针,你用test.add(temp);也只是将该指针放入链表中,所以要想得到你想要的东西,就需要创建新的数组
  • 打赏
  • 举报
回复
boyiam 2004-05-06
mhp还真多

汗.....
  • 打赏
  • 举报
回复
marvy 2004-05-06
Arias(永恒之道) 解释的好:~)

对象容器里面存的,只是references。而你只有一个对象,那么最终List的所有元素都指向这一个对象。

结果是最后一次的赋值。
  • 打赏
  • 举报
回复
marvy 2004-05-06
import java.util.*;

class ArrayDemo1
{
public static void main(String[] args)
{
LinkedList test=new LinkedList();
int[] temp = {0,0};
for(int i=0;i<10;i++){
temp[0]=i+3;
temp[1]=i+9;
for(int j=0;j<2;j++){
System.out.println("temp["+j+"]="+temp[j]);
}
System.out.println("-----------------------");
test.add(temp);
}
}
}
  • 打赏
  • 举报
回复
Arias 2004-05-06
marvy(marvy) ( ) 的方法可行!

必须在每次从新temp = new int[2];的时候

要知道这如果你不从新new一次的话,由于它只是指向一个内存的地址,这样你每次加值的时候
其实是覆盖了前的值!

  • 打赏
  • 举报
回复
marvy 2004-05-06

楼主的程序有些出入。
  • 打赏
  • 举报
回复
marvy 2004-05-06
Result:
3
4
5
6
7
8
9
10
11
12
  • 打赏
  • 举报
回复
marvy 2004-05-06
import java.util.*;

class ArrayDemo1
{
public static void main(String[] args)
{
LinkedList test=new LinkedList();
int[] temp;
for(int i=0;i<10;i++){
temp = new int[2];
temp[0]=i+3;
temp[1]=i+9;
test.add(temp);
}
for(int i=0;i<10;i++){
temp=(int[])test.get(i);
System.out.println(temp[0]);
}
}
}
  • 打赏
  • 举报
回复
boyiam 2004-05-06

建议不要随便的问题就找“高手解释一下原因”
高手都忙
而我酱紫的又不好意思冒充
等来等去耽误自己的终身
  • 打赏
  • 举报
回复
boyiam 2004-05-06

每次new出来新的int[]把引用放进去就是你要的结果了

没有翻脸不认人
这儿要是认人
就没有对象容器的好处了
那是“造型”技术的体现而已
  • 打赏
  • 举报
回复
boyiam 2004-05-06

对象容器里面存的,只是references
  • 打赏
  • 举报
回复
sqlink 2004-05-06
楼上所有人都很强啊,谢谢各位了,现在开始分分!
  • 打赏
  • 举报
回复
sqlink 2004-05-06
顺便说一下我用ArrayList的效果也是这样
  • 打赏
  • 举报
回复
相关推荐
发帖
Java SE
加入

6.2w+

社区成员

Java 2 Standard Edition
申请成为版主
帖子事件
创建了帖子
2004-05-06 03:43
社区公告
暂无公告