Python中文网

一个关于 编程问题的解答网站.

有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (6) 个答案

  1. # 1 楼答案

    可以通过多种方式在Java中声明数组:

    float floatArray[]; // Initialize later
    int[] integerArray = new int[10];
    String[] array = new String[] {"a", "b"};
    

    您可以在Sun tutorial站点和JavaDoc中找到更多信息

  2. # 2 楼答案

    我发现,如果您了解每个部分,这会很有帮助:

    Type[] name = new Type[5];
    

    Type[]变量被称为name的类型(“name”被称为标识符)。文字“Type”是基类型,括号表示这是该基的数组类型。数组类型是它们自己的类型,这允许您创建多维数组,如Type[][](类型[]的数组类型)。关键字new表示为新数组分配内存。括号之间的数字表示新阵列的大小以及要分配的内存量。例如,如果Java知道基类型Type需要32个字节,并且您想要一个大小为5的数组,那么它需要在内部分配32*5=160个字节

    您还可以使用已经存在的值创建数组,例如

    int[] name = {1, 2, 3, 4, 5};
    

    这不仅会创建空空间,还会用这些值填充它。Java可以判断原语是整数,并且有5个,因此可以隐式地确定数组的大小

  3. # 3 楼答案

    以下显示了数组的声明,但数组未初始化:

     int[] myIntArray = new int[3];
    

    下面显示了数组的声明和初始化:

    int[] myIntArray = {1,2,3};
    

    现在,下面还显示了数组的声明和初始化:

    int[] myIntArray = new int[]{1,2,3};
    

    但是第三个显示了匿名数组对象创建的属性,它由一个引用变量“myIntArray”指向,因此如果我们只写“newint[]{1,2,3};”这就是匿名数组对象的创建方式

    如果我们只写:

    int[] myIntArray;
    

    这不是数组的声明,但以下语句使上述声明完成:

    myIntArray=new int[3];
    
  4. # 4 楼答案

    您可以使用数组声明或数组文字(但仅当您立即声明并影响变量时,数组文字不能用于重新分配数组)

    对于基本类型:

    int[] myIntArray = new int[3];
    int[] myIntArray = {1, 2, 3};
    int[] myIntArray = new int[]{1, 2, 3};
    
    // Since Java 8. Doc of IntStream: https://docs.oracle.com/javase/8/docs/api/java/util/stream/IntStream.html
    
    int [] myIntArray = IntStream.range(0, 100).toArray(); // From 0 to 99
    int [] myIntArray = IntStream.rangeClosed(0, 100).toArray(); // From 0 to 100
    int [] myIntArray = IntStream.of(12,25,36,85,28,96,47).toArray(); // The order is preserved.
    int [] myIntArray = IntStream.of(12,25,36,85,28,96,47).sorted().toArray(); // Sort 
    

    对于类,例如String,它是相同的:

    String[] myStringArray = new String[3];
    String[] myStringArray = {"a", "b", "c"};
    String[] myStringArray = new String[]{"a", "b", "c"};
    

    当您先声明数组,然后对其进行初始化、将数组作为函数参数传递或返回数组时,第三种初始化方法非常有用。显式类型是必需的

    String[] myStringArray;
    myStringArray = new String[]{"a", "b", "c"};
    
  5. # 5 楼答案

    Type[] variableName = new Type[capacity];
    
    Type[] variableName = {comma-delimited values};
    
    
    
    Type variableName[] = new Type[capacity]; 
    
    Type variableName[] = {comma-delimited values};
    

    也是有效的,但我更喜欢类型后面的括号,因为更容易看出变量的类型实际上是数组

  6. # 6 楼答案

    有两种类型的数组

    一维阵列

    默认值的语法:

    int[] num = new int[5];
    

    或(不太受欢迎)

    int num[] = new int[5];
    

    给定值的语法(变量/字段初始化):

    int[] num = {1,2,3,4,5};
    

    或(不太受欢迎)

    int num[] = {1, 2, 3, 4, 5};
    

    注意:为了方便起见,int[]num更可取,因为它清楚地表明您在这里谈论的是数组。否则没有区别。一点也不

    多维数组

    声明

    int[][] num = new int[5][2];
    

    int num[][] = new int[5][2];
    

    int[] num[] = new int[5][2];
    

    初始化

     num[0][0]=1;
     num[0][1]=2;
     num[1][0]=1;
     num[1][1]=2;
     num[2][0]=1;
     num[2][1]=2;
     num[3][0]=1;
     num[3][1]=2;
     num[4][0]=1;
     num[4][1]=2;
    

     int[][] num={ {1,2}, {1,2}, {1,2}, {1,2}, {1,2} };
    

    不规则阵列(或非矩形阵列)

     int[][] num = new int[5][];
     num[0] = new int[1];
     num[1] = new int[5];
     num[2] = new int[2];
     num[3] = new int[3];
    

    因此,这里我们显式地定义列
    另一种方式:

    int[][] num={ {1}, {1,2}, {1,2,3,4,5}, {1,2}, {1,2,3} };
    

    访问:

    for (int i=0; i<(num.length); i++ ) {
        for (int j=0;j<num[i].length;j++)
            System.out.println(num[i][j]);
    }
    

    或者:

    for (int[] a : num) {
      for (int i : a) {
        System.out.println(i);
      }
    }
    

    不规则数组是多维数组
    有关说明,请参见the official java tutorials中的多维数组详细信息