美文网首页
Java学习之数组赋值

Java学习之数组赋值

作者: 玉圣 | 来源:发表于2017-05-26 16:40 被阅读44次

    先来看下面一个小程序:

    import java.util.*;  
    class ArrayText  
    {  
        public static void main(String [] args)  
        {  
            Scanner in = new Scanner(System.in);  
            //常规赋值方法  
            int[]   a = {4,8,5};  
            for (int i=0;i<a.length;i++)  
            {  
                a[i] = in.nextInt();  
            }  
            int[][] b =   
                {  
                {1,2,3},  
                {2,1,3},  
                {3,2,1}  
                };  
      
            /*赋值二: 
            b[0][0] = 1; 
            b[1] = a;*/  
              
            /*赋值三: 
            b[0][] = {4,8,5}; 
            b[0][] = a[]; 
            b[0][] = a[1];*/  
              
            /*赋值四: 
            b[1] = 5; 
            a[1] = 5; 
            b[1] = a[1];*/  
      
            System.out.println("数组b:");  
            System.out.println(Arrays.deepToString(b));  
            System.out.println("数组a:");  
            System.out.println(Arrays.toString(a));  
        }  
    }
    

    我们在给一维数组赋值的时候,如果用上面那种输入的方法,是可以的,但是如果给b这种二维甚至多维数组用这种方法赋值,就只能赋值给最后一维的数组(在b中是第二维数组),因为最后一维数组是可以接收int型(同类型)的值的。

    在这四种赋值方法中,后三种都是不正确的,我在写其他程序时才发现的,我想,我在数组,尤其是多维数组上还存在误区吧。所谓多维数组,简单地说就是“数组的数组”。多维数组中,最后一维可以接收int型(或其他类型)的值,而除了最后一维数组外,都是不可直接接收int型(或其他类型)的值,如上面的赋值四所示。

    归结为一句话:必须是同类型的值才能接收赋的值。如赋值二所示,是可以的。

    对于赋值三,会提示“非法表达式的开始”的错误。

    所以对于多维数组,如何把读取用户随机输入的数值赋值给除最后一维外的数组呢?我没有想到什么方法,如果看到我这篇很菜的文章的高手有办法,希望能给些意见,在此谢过。

    相关文章

      网友评论

          本文标题:Java学习之数组赋值

          本文链接:https://www.haomeiwen.com/subject/dzsxfxtx.html