黑马程序员技术交流社区

标题: 新手上路,菜鸟问题请高手解答 [打印本页]

作者: &天马星空ぁ    时间: 2016-9-6 09:24
标题: 新手上路,菜鸟问题请高手解答
重新定义个一个数组并把原来的数组赋值给这个新的数组,
然后改变旧数组的顺序,新得到的数组顺序也会改变吗?


/*
要求:
写一个程序输入5个整数a,b,c,按从小到大顺序输出
*/
//导入Scanner控制台输入包
import java.util.Scanner;
public class Demo04
{
        public static void main(String[] args)
        {
                int[] arr=new int[5];
               
                Scanner sc=new Scanner(System.in);
                //从控制台输入5个整数数值形成一个数组
                for(int i=0;i<5;i++)
                {
                        System.out.println("请输入一个整数");
                        arr[i]=sc.nextInt();
                }
                int[] arr1=arr;
                //对数组内的各个数进行排列 从小到大
                for(int i=0;i<arr.length-1;i++)
                {
                        int temp;
                        for(int a=i+1;a<arr.length;a++)
                        {
                                if(arr[i]>arr[a]){
                                        temp=arr[a];
                                        arr[a]=arr[i];
                                        arr[i]=temp;
                                }
                        }
                }
                //输出数组中的每个数值
                for(int i=0;i<arr.length;i++)
                {
                        System.out.print(arr[i]+"  ");
                }
                System.out.println();
                //找出arr数组中的每个值对应arr1中的角标
                for(int i=0;i<arr.length;i++)
                {
                        for(int y=0;y<arr.length;y++){
                                if(arr[i]==arr1[y]){
                                        System.out.print(y+"  ");
                                       
                                }
                        }
                }
        }
}
作者: &天马星空ぁ    时间: 2016-9-6 10:23
为什么新的数组也会改变呢?
作者: 君行    时间: 2016-9-6 11:34
你最后用的==于才会进去输出 能不顺序一样吗..
作者: zhoujiafan    时间: 2016-9-6 15:16
火钳 留名,22333333
作者: Ryan_Println    时间: 2016-9-6 15:19
zhoujiafan 发表于 2016-9-6 15:16
火钳 留名,22333333

典型的水军0.0
作者: &天马星空ぁ    时间: 2016-9-6 15:26
君行 发表于 2016-9-6 11:34
你最后用的==于才会进去输出 能不顺序一样吗..

我已经知道了  
是因为我上边写的int[] arr=arr1;
数组是引用数据类型,赋值给arr1是赋的地址值,并不是数据值,
所以两个数组其实就是一个数组,所以顺序才一样
作者: 459374998    时间: 2016-9-29 23:23
这个问题问的好




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2