• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
小K-yf
博客园    首页    新随笔    联系   管理    订阅  订阅
数组(Java)

数组的定义

  1. 数组是相同类型数据的有序集合
  2. 数组描述的是相同类型的若干数据,按照一定的先后次序排列组合而成
  3. 其中,每个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们

数组的声明和创建

基本介绍

  • 首先必须声明数组变量,才能在程序中使用数组,声明数组变量的方法:
    //数组类型 数组名
    int[] nums;//(Java首选的方法)
    int nums[];//(不是首选方法,在C和C++用的形式)
    
  • Java语言使用new操作符来创建数组,语法如下:
    //数组类型 数组名=new 数组类型【数组大小Size】
    int[] nums=new int[10];
    
  • 数组是通过索引访问的,数组索引从0开始(数组下标从0开始)
  • 获取数组长度:array.length

运用实例

public class ChuangJian2 {
    public static void main(String[] args) {
        //数组的定义(声明):数组类型 数组名
        int[] nums;

        //数组的创建:数组类型 数组名=new 数组类型【数组大小Size】
        int[] num=new int[4];

        //给上面的数组的赋值
        num[0]=0;
        num[1]=1;
        num[2]=2;
        num[3]=3;
        //num[4]=4; 执行此条语句会报错:ArrayIndexOutOfBoundsException(数组越界)

        //计算所有元素的和
        int sum=0;
        for (int i = 0; i < num.length; i++) {
            sum=sum+num[i];
        }
        System.out.println(sum);
    }
}

数组的四个基本特点

  • 数组的长度是确定的,数组一旦被创建,他的大小是不可以改变的
  • 数组的元素必须是相同的类型,不允许出现混合类型
  • 数组中的元素可以是任意数据类型,包括引用数据类型和基本数据类型
  • 数组变量属于引用类型,数组也可以看成对象,数组中的每个元素相当于该对象的成员变量
  • 数组本身就是对象,Java中对象在堆中,因此数组无论保存原始类型还是其他对象类型,数组对象本身就在堆中
  • 数组边界:下标的合法区间:【0,length-1】,如果越界就会报错

运用实例

public class ChuShiHua3 {
    public static void main(String[] args) {
        //静态初始化:创建+赋值
        int[] a={1,2,3,4};
        System.out.println(a[0]);

        //动态初始化:包含默认初始化
        int[] b=new int[10];
        b[1]=1;
        System.out.println(b[1]);
        System.out.println(b[0]);//未初始赋值,默认值为0
        /*数组默认初始化
          数组是引用类型,他的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐试初始化。
         */
    }
}

数组使用

public class ShiYong4 {
    //数组的使用
    public static void main(String[] args) {
        //普通For对数组的操作
        int[] array={1,2,3,4,5};
        //打印全部的数组元素
        for (int i = 0; i < array.length; i++) {
            System.out.println("数组第"+(i+1)+"元素为:"+array[i]);
        }
        //求数组所有元素的和
        int sum=0;
        for (int i = 0; i < array.length; i++) {
            sum=sum+array[i];
        }
        System.out.println("总和为:sum="+sum);
        //求数组元素中的最大值
        int max=array[0];
        for (int i = 1; i < array.length; i++) {
            if (array[i]>max){
                max=array[i];
            }
        }
        System.out.println("数组中最大的数为:"+max);

        //For-Each循环(增强for循环)
        //打印数组全部元素
        //for(定义一个数组变量(接受数组元素):需要输出的数组名)
        for (int arrays:array){
            System.out.println(arrays);
        }

        //数组作为方法使用
        arr(array);

        //把数组值反转
        int[] fan=fan(array);
        arr(fan);
    }

    //数组作为方法使用
    public static void arr(int[] array){
        for (int i = 0; i < array.length; i++) {
            System.out.println("数组第"+(i+1)+"元素为:"+array[i]);
        }
    }

    //把数组值反转
    public static int[] fan(int[] array){
        int[] result=new int[array.length];
        //反转操作
        for (int i = 0,j=result.length-1; i < array.length; i++,j--) {
            result[j]=array[i];
        }
        return result;
    }
}

多维数组

  • 定义:多维数组可以看成数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组
    二维数组:int[][] a=new int[2][5];

运用实例

public class DuoWei5 {
    public static void main(String[] args) {
        //数组[2][5]
        int[][] a={{1,2},{2,3},{3,4},{4,5},{5,6}};
        //a[0]  1,2
        //a[1]  2,3
        //a[2]  3,4
        //a[3]  4,5
        //a[4]  5,6
        //数组作为方法使用
        arr(a[0]);//打印出a[0]  1,2

        //打印数组所有元素
        for (int i = 0; i < a.length; i++) {
            for (int j = 0; j <a[i].length ; j++) {
                System.out.print(a[i][j]+" ");
            }
            System.out.println();
        }
    }
    //数组作为方法使用
    public static void arr(int[] array){
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }
}
posted on 2022-05-21 20:05  糖果Tian  阅读(59)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3