Java数组学习

本文详细介绍了Java中的数组,包括数组的概念、初始化的静态与动态方法、定义方式以及基础运用。讲解了如何获取数组长度,探讨了数组元素为非基本数据类型时的情况,并通过实例展示了二维数组的创建与应用。此外,还提到了多维数组,特别是二维数组的杨辉三角形示例。
摘要由CSDN通过智能技术生成

1:数组(Array)是相同类型数据的集合。

2:Java 数组初始化的两种方法:

(1)静态初始化: 程序员在初始化数组时为数组每个元素赋值;
(2)动态初始化: 数组初始化时,程序员只指定数组的长度,由系统为每个元素赋初值。

3:怎么定义数组
方式1(推荐,更能表明数组类型)
  type[] 变量名 = new type[数组中元素的个数];
  比如:

int[] a = new int[10];

数组名,也即引用a,指向数组元素的首地址。
  方式2(同C语言)
  type变量名[] = new type[数组中元素的个数];
  如:

int a[] = new int[10];

方式3 定义时直接初始化
  type[] 变量名 = new type[]{逗号分隔的初始化值};
  其中红色部分可省略,所以又有两种:

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

其中int[] a = new int[]{1,2,3,4};的第二个方括号中不能加上数组长度,因为元素个数是由后面花括号的内容决定的。

4:数组的基础运用
(1)数组长度
Java中的每个数组都有一个名为length的属性,表示数组的长度。
  length属性是public final int的,即length是只读的。数组长度一旦确定,就不能改变大小。

public class Test {
    public static void main(String[] args) {
        int i;
        int[] a;
        a = new  int[5];
        for (i=0;i<5;i++)
        a[i]=i;
        for (i=a.length-1;i>=0;i--)
            System.out.println("a["+i+"]="+a[i]+",\t");
        System.out.println("\n数组a的长度是:“+a.length");
    }
}

输出结果为:
a[4]=4,
a[3]=3,
a[2]=2,
a[1]=1,
a[0]=0,

数组a的长度是:5

(2)数组元素不为基本数据类型时
组元素不为基本原生数据类型时,存放的是引用类型,而不是对象本身。当生成对象之后,引用才指向对象,否则引用为null

public class ArrayTest {
    public static void main(String[] args)
    {
        Person[] p = new Person[3];
        //未生成对象时,引用类型均为空
        System.out.println(p[0]);
        //生成对象之后,引用指向对象
        p[0] = new Person(10);
        p[1] = new Person(20);
        p[2] = new Person(30);
        for(int i = 0; i < p.length; i++)
        {
            System.out.println(p[i].age);
        }
    }
}
class Person
{
    int age;
    public Person(int age)
    {
        this.age = age;
    }
}

输出结果为:
null
10
20
30
(3)二维数组
二维数组是数组的数组。
基本的定义方式有两种形式,如:

type[][] i = new type[2][3];(推荐)
  type i[][] = new type[2][3];

二维数组可以用比较经典的杨辉三角形来举例:

public class woo {
    public static void triangle(int n) {

        int[][] array = new int[n][n];//三角形数组

        for(int i=0;i<array.length;i++){

            for(int j=0;j<=i;j++){

                if(j==0||j==i){

                    array[i][j]=1;

                }else{

                    array[i][j] = array[i-1][j-1]+array[i-1][j];

                }

                System.out.print(array[i][j]+"\t");

            }

            System.out.println();

        }

    }

    public static void main(String args[]) {

        triangle(9);

    }
}

运行结果:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1

(4)还有三维及以上的多维数组
使用多维数组,输入和输出的方式和一维 / 二维的数组相同,但是每多一维,嵌套循环层数就要多一层,所以一维数越高的数组起复杂程度也就更难,这里我们就不过多展示了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杭州小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值