JAVA二维数组排序 明明给第一个数组排序,结果第二个数组也变了

收被子 2016-12-19 09:37:50
package A;


public class B
{
public static void main(String[] args)
{
int[][] s = new int[10][10];
int t;
for(int i = 0;i<5;i++)
{
s[0][i]=i+1;
}
s[1] = s[0];
for(int i = 0 ; i < 5; i++)
{
for(int k1 = i; k1 < 5;k1++)
{
if(s[0][k1]>s[0][i])
{
t=s[0][k1];
s[0][k1]=s[0][i];
s[0][i]=t;
}
}
}
for(int i=0;i<5;i++)
{
System.out.print(s[0][i] +" ");
}
System.out.println();
for(int i=0;i<5;i++)
{
System.out.print(s[1][i] +" ");
}
}//明明给第一个数组排序,结果第二个数组也变了
}
...全文
165 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
masterGr 2016-12-20
  • 打赏
  • 举报
回复
因为这样写 s[1] = s[0]相当于 s[1]和s[0]同时引用了堆里的一块地址,s[0]变s[1]当然也变。 可以这样写s[1]=s[0].clone();就不会变了
什么都不能 2016-12-19
  • 打赏
  • 举报
回复
是把s[0]的赋给了s[1] 而不是值

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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