Java基础——数组学习

目录

Java数组

⭐数组介绍

●实例

⭐数组的使用

♦使用方式1-动态初始化

●数组的引用(使用)

♦使用方式2-动态初始化

♦使用方式3-静态初始化

⭐数组使用注意事项和细节

⭐数组赋值机制

⭐数组拷贝

目录

Java数组

⭐数组介绍

●实例

⭐数组的使用

♦使用方式1-动态初始化

●数组的引用(使用)

♦使用方式2-动态初始化

♦使用方式3-静态初始化

⭐数组使用注意事项和细节

⭐数组赋值机制

⭐数组拷贝

⭐数组反转

⭐数组反转


Java数组

⭐数组介绍

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

●实例

public class array1 {
     public static void main(String[] args) {
         double total = 0;
         //double[] 表示double类型数组,数组名为hens
         double[] hens = {3, 5, 1, 3.4, 2, 50,7,8,9,10,11,12,14,15,16,161,43};
         for (int i = 0; i < hens.length; i++) {
             total = total + hens[i];
         }
         System.out.println("总体重=" + total +  "  平均体重=" + (total/6));
     }
 }

⭐数组的使用

♦使用方式1-动态初始化

数组的定义——数据类型 数组名[] = new 数据类型[大小]

 int a[] = new int[5];   //创建了一个数组,名字a,存放5个int

说明:这是定义数组的一种方法。

●数组的引用(使用)

数组名[下标/索引]

import java.util.Scanner;
 ​
 public class array2 {
     public static void main(String[] args) {
         //创建描扫
         Scanner myScanner = new Scanner(System.in);
         double scores[] = new double [5];
         //输入数组
         for (int i = 0; i < scores.length; i++){
             System.out.print("请输入"+ (i+1)+ "个元素");
             scores[i]= myScanner.nextDouble();
         }
         //遍历数组
         for (int i = 0; i < scores.length; i++){
             System.out.println("值="+scores[i]);
         }
     }
 }

♦使用方式2-动态初始化

●先声明数组

语法:数据类型 数组名[];也可以数据类型[] 数组名;

 int a[];或者 Int[] a;

●创建数组

语法:数组名 = new 数据类型[大小];

 a = new int[10];

♦使用方式3-静态初始化

●初始化数组

语法:数据类型 数组名[] = {元素值,元素值....};

 int a[] = {2,5,6,7,8} //如果知道数组有多少个元素,具体值相当于下面的方法
 int a[] = new int[9];

⭐数组使用注意事项和细节

  1. 数组是多个相同类型数据的组合,实现对这些数据的统一管理

  2. 数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用

  3. 数组创建后,如果没有赋值,有默认值——int 0,short 0 ,boolean false ,String null;

  4. 使用数组的步骤●声明数组并开辟空间●给数组各个元素赋值●使用数组

  5. 数组的下表是从0开始的

  6. 数组下标必须在指定范围内使用,否则报:下标越界异常

     /*比如*/int[] arr = new int[5];//则有下标为0-4

  7. 数组是引用类型,数组型数据是对象(object)

⭐数组赋值机制

  1. 基本数据类型赋值,这个值就是具体的数据,而且相互不影响。

    int n1= 2; int n2 = n1;
  2. 数组在默认情况下是引用传递,赋的值是地址。

    int[] arr1 = {1,2,3}
    int[] arr2 = arr1;

  

⭐数组拷贝

实现数组拷贝(内容复制)——将Int[] arr1 = {10,20,30};拷贝到arr2数组,数据空间需要独立。

public static void main(String[] args) {
        int[] arr1 = {10,20,30};

        //创建一个新的数组arr2,开辟新的数据空间
        //大小 arr1.lenght;
        int[] arr2 = new int[arr1.length];

        //遍历arr1,把每个元素拷贝到arr2对应元素的位置
        for (int i = 0;i< arr1.length;i++){
            arr2[i] = arr1[i];
        }
        arr2[0] = 100;
        System.out.println("=========输出arr1的元素=======");
        for (int i = 0;i< arr1.length;i++){
            System.out.println(arr1[i]);
        }
        
        System.out.println("=========输出arr2的元素=======");
        for (int i = 0;i< arr1.length;i++){
            System.out.println(arr2[i]);
        }

    }

⭐数组反转

要求:把数组的元素内容反转——arr{11,22,33,44,55,66}->{66,55,44,33,22,11}

1)方式1:通过找规律反转

public static void main(String[] args) {
        /**
         * 方式1:通过找规律反转
         * 1、定义数组
         * 2、规律:
         *      1.把arr[0]和arr[5]进行交换
         *      2.把arr[1]和arr[4]进行交换
         *      3.把arr[2]和arr[3]进行交换
         *      4.一共进行了3次交换 = arr.lenght / 2
         *      5.每次交换时,对应的下标是arr[i]和arr[arr.lenght -1 -i]
         */
        int[] arr = {11,22,33,44,55,66};
        int team = 0;
        int len = arr.length;
        for (int i = 0;i< len/2;i++){
            team= arr[len -1 - i];//保存
            arr[len -1 - i] = arr[i];
            arr[i]=team;
        }
        for (int i = 0;i< arr.length;i++){
            System.out.println(arr[i]);
        }
​
    }

2)方式2:使用逆序赋值方式

public static void main(String[] args) {
        /**
         * 方式二:使用逆序赋值方式
         * 1、先创建一个新的数组arr2,大小arr.lenght
         * 2、逆序遍历arr,将每个元素拷贝到arr2的元素中(顺序拷贝)
         * 3、增加一个循环变量j->0->5
         * 4、当for循环结束,arr2就是一个逆向数组
         * 5、让arr指向arr2数据空间,此时arr原来的数据空间就没有变量引用,会被销毁
         */
        int[] arr = {11,22,33,44,55,66};
        int[] arr2 = new int[arr.length];
        //逆序遍历arr
        for (int i = arr.length -1, j = 0; i>=0; i--, j++){
            arr2[j] = arr[i];
        }
        arr = arr2;
         for (int i = 0;i<arr.length;i++){
            System.out.print(arr[i] +"\t");
        }
​
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值