zoukankan      html  css  js  c++  java
  • 数组

    一、一维数组

    1.声明:

    (1)char []c;     推广情况:char []c1,c2,c3;可以声明三个一维数组

    (2)char c[];(不推荐,据说是为了C系程序员便于理解)      无对应的推广情况,若只是char c1,c2,c3[];只是c3成为一维数组

    2.创建:(09-24更新)

    (1)没有引用:new char[5];实际上这样的语法会报错,必须赋值给一个引用。

    (2)有引用:char []c=new char[5];或者char []c; c=new char[5];

    注:不能没有数组长度,否则无法编译,但是长度可以是变量,例如:

    int m=9;char []c=new int[m];是被允许的。

            char []a=new char[2];
            Integer [] b=new Integer[3];
            int  []c=new int [2];  
            boolean [] d=new boolean[2];
            System.out.println(a);         //char数组输出2个方块(不知道是什么?),等同于 System.out.println(new char[2]);
    System.out.println(d);  //除char数组都输出地址,等同于 System.out.println(new boolean[2]); for(char s:a) { System.out.println(s); //遍历未初始化的char数组,输出2个方块,同上直接输出一样 } for(Integer s:b) { System.out.println(s); //遍历未初始化的Integer数组,输出null,包括未初始化的String及其他对象引用都是这样 } for(int s:c) { System.out.println(s); //未初始化的int输出0 } for(boolean s:d) { System.out.println(s); //未初始化的boolean输出false }

    其实数组创建很简单,上面的篇幅都用在Java自动初始化上了,其余诸如long、short、byte、double、float都会被设置为0或者0.0.

    3.初始化:

    (1)普通数组:char []c={'a','b'};再次直接输出,会打印出ab,但例如int []={5,8,9};直接输出地址,也就是说除了char数组直接打印数组都会输出地址。

    数组初始化和声明必须一起,否则会报错,例如:

    char []a= new char[2];
    a= {'a','b'};       //报错

    提示报错Array constants can only be used in initializers数组只能在声明赋值?

    正常赋值:

    int [] b= {5,8,9};

    (2)对象数组:String []s={"ab","cd"};或者String []s={new String("ab"),new String("cd")};都是等价的,原因在下一篇字符串说明。

    Integer []i={1,2};或Integer []i={new Integer(1),new Integer(2)};

    二、多维数组

    1.声明

    与一维数组相同有两种方式:int [][]m;(推荐) 可推广至int [][] m1,m2,m3;      

    int m[][];(不推荐);

    2,创建

    (1)直接创建:int [][]m=new int[2][2];

    (2)从高到低创建:

    int [][]m=new int[2][];       //前两句等价于int[][] m;m=new int[2][]两句的组合
    m[0]=new int[2];              
    m[
    1]=new int[2];

    也是创建了一个2*2的二维数组。

    注意不能从低到高创建:

    int [][]m=new int[][2];     //报错,Cannot specify an array dimension after an empty dimension

    3.初始化

    普通:int[][] m={{1,2},{3,4}};

    而不能写成

    int [][]m=new int[2][];
    m[0]= {5,6};

    m[1]={7,8};  也是只能在声明时初始化。

    对象:String [][] s={{new("aa"),new("bb")},{new("cc"),new("dd")}};

    或者是等价地有:String [][]s={{"aa","bb"},{"cc","dd"}};

    例如:

    String[][]s= {{"aa","bb"},{"a","c"},{"ff"}};
            for(String str[]:s)
            {
                for(String ss:str)
                System.out.println(ss);           //二维数组的遍历
            }

     输出:aa

    bb

    a

    c

    ff

  • 相关阅读:
    Codeforces Round #344 (Div. 2) C. Report 其他
    Codeforces Round #344 (Div. 2) B. Print Check 水题
    Codeforces Round #344 (Div. 2) A. Interview 水题
    8VC Venture Cup 2016
    CDOJ 1280 772002画马尾 每周一题 div1 矩阵快速幂 中二版
    CDOJ 1280 772002画马尾 每周一题 div1 矩阵快速幂
    CDOJ 1279 班委选举 每周一题 div2 暴力
    每周算法讲堂 快速幂
    8VC Venture Cup 2016
    Educational Codeforces Round 9 F. Magic Matrix 最小生成树
  • 原文地址:https://www.cnblogs.com/lbrs/p/9005863.html
Copyright © 2011-2022 走看看