难道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
请高手解释一下什么原因!谢谢
...全文
136 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
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的效果也是这样

62,635

社区成员

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

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