Java 数 组(笔记)

本文详细介绍了Java数组的使用,包括数组的初始化、赋值机制、拷贝、反转、添加/扩容、排序介绍、查找方法、二维数组的声明与操作,以及二维数组在打印杨辉三角中的应用。同时,强调了数组的注意事项,如下标从0开始,数组元素的默认值等。
摘要由CSDN通过智能技术生成

1. 数组介绍

  • 数组可以存放多个同一类型的数据。数组也是一种数据类型,是引用类型。

2. 数组的使用

方法一:动态初始化
在这里插入图片描述
在这里插入图片描述
方式二:动态初始化

  • 先声明数组
    语法:数据类型 数组名[]; 也可以 数据类型[] 数组名; int a[]; 或者 int[] a;
  • 创建数组
    语法: 数组名=new 数据类型[大小]; a=new int[10];
        //演示 数据类型 数组名[]=new 数据类型[大小]
        //循环输入5个成绩,保存到double数组,并输出
        //步骤
        //1. 创建一个 double 数组,大小 5
        // (1) 第一种动态分配方式
        //double scores[] = new double[5];
        //(2) 第2种动态分配方式, 先声明数组,再 new 分配空间
        double scores[] ; //声明数组, 这时 scores 是 null
        scores = new double[5]; // 分配内存空间,可以存放数据
        //2. 循环输入
        //   scores.length 表示数组的大小/长度
        Scanner myScanner = new Scanner(System.in);
        for( int i = 0; i < scores.length; i++) {
   
            System.out.println("请输入第"+ (i+1) +"个元素的值");
            scores[i] = myScanner.nextDouble();
        }
        //输出,遍历数组
        System.out.println("==数组的元素/值的情况如下:===");
        for( int i = 0; i < scores.length; i++) {
   
            System.out.println("第"+ (i+1) +"个元素的值=" + scores[i]);
        }

方式三:静态初始化
在这里插入图片描述

3. 数组使用注意事项和细节

1)数组是多个相同类型数据的组合,实现对这些数据的统一管理
2)数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。
3)数组创建后,如果没有赋值,有默认值
int 0,short 0, byte 0, long 0, float 0.0,double 0.0,char \u0000,boolean false,String null
4)使用数组的步骤 1. 声明数组并开辟空间 2 给数组各个元素赋值 3 使用数组
5)数组的下标是从 0 开始的。
数组下标必须在指定范围内使用,否则报:下标越界异常,比如
int [] arr=new int[5]; 则有效下标为 0-4
数组属引用类型,数组型数据是对象(object)

        //1. 数组是多个相同类型数据的组合,实现对这些数据的统一管理
        //int[] arr1 = {1, 2, 3, 60,"hello"};//String ->int
        double[] arr2 = {
   1.1, 2.2, 3.3, 60.6, 100};//int ->double
        //2. 数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用
        String[] arr3 = {
   "北京","jack","milan"};
        //3. 数组创建后,如果没有赋值,有默认值
        //int 	0,short 0, byte 0, long 0,
        //float 0.0,double 0.0,char \u0000,
        //boolean false,String null
        short[] arr4 = new short[3];
        System.out.println("=====数组arr4=====");
        for(int i = 0; i < arr4.length; i++) {
   
            System.out.println(arr4[i]);
        }
        //6. 数组下标必须在指定范围内使用,否则报:下标越界异常,比如
        //int [] arr=new int[5]; 则有效下标为 0-4
        //即数组的下标/索引 最小 0 最大 数组长度-1(4)
        int [] arr = new int[5];
        //System.out.println(arr[5]);//数组越界

4. 数组赋值机制

1)基本数据类型赋值,这个值就是具体的数据,而且相互不影响。
int n1 = 2; int n2 = n1
2)数组在默认情况下是引用传递,赋的值是地址。
看一个案例,并分析数组赋值的内存图(重点, 难点. )。
int[] arr1 = {1,2,3};
int[] arr2 = arr1;
在这里插入图片描述

5. 数组拷贝

将 int[] arr1 = {10,20,30}; 拷贝到 arr2 数组, 要求数据空间是独立的.

        //将 int[] arr1 = {10,20,30}; 拷贝到 arr2数组,
        //要求数据空间是独立的.
        int[] arr1 = {
   10, 20, 30};
        //创建一个新的数组arr2,开辟新的数据空间
        //大小 arr1.length;
        int[] arr2 = new int[arr1.length];
        //遍历 arr1 ,把每个元素拷贝到arr2对应的元素位置
        for (int i = 0; i < arr1.length; i++) {
   
            arr2[i] = arr1[i];
        }
        //修改 arr2, 不会对arr1有影响.
        arr2[0] = 100;
        //输出arr1
        System.out.println("====arr1的元素====");
        for (int i = 0; i < arr1.length; i++) {
   
            System.out
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值