Java学习之数组赋值

先来看下面一个小程序:

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型(或其他类型)的值,如上面的赋值四所示。

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

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

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

推荐阅读更多精彩内容

  • 数组在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称...
    朱森阅读 3,163评论 2 13
  • 指针是C语言中广泛使用的一种数据类型。 运用指针编程是C语言最主要的风格之一。利用指针变量可以表示各种数据结构; ...
    朱森阅读 2,882评论 3 44
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 29,128评论 18 398
  • 有一堂低年级的数学课,学习“重复”的规律。有一道题是中国的十二生肖,通过学习让小学生认识十二生肖的规律,就是...
    默如书_ee68阅读 179评论 4 5
  • 调整你的网络代码 iOS中的网络栈包含几个用于与iOS设备的无线电硬件通信的接口。主要的编程接口是CFNetwor...
    raingu24阅读 100评论 0 0
  • 文 | 戴文子 最近在读什么书? 《我心深处》。 提问:怎样吃芥末才能让人初觉不快、后感激爽、最后回味无穷、忍不住...
    戴文子阅读 1,668评论 0 3
  • 清晨凉凉的微风 小心翼翼地吹拂着我的脸颊 傍晚大大地天空 步履匆匆地拉下了夜幕 我知道那是我喜欢的季节 丰收 喜悦...
    冬风中的百合阅读 269评论 4 8