页首Html代码

03-Java数组

3.1 数组概述

数组就是具有相同数据类型的一组数据的集合,当需要使用的变量很多,而且数据类型相同时,一个个声明就很麻烦,这是可以声明一个数组,然后对数组进行操作。例如:球类的合集:篮球、足球、羽毛球等,电器的集合:电视机、洗衣机、电风扇等,就可以定义在一个数组中。

3.2 一维数组

一维数据实质上就是一组相同类型的数据的集合,当程序处理一组数据或者传递一组数据时,可以使用这种类型的数组。

数组元素类型[] 数组名字;

数组元素类型:决定了数组的数据类型,它可以时java中的任意数据类型
符号[]:指明该变量时一个数组类型的变量,单个[]表示要创建的是一维数组

声明数组后,还不能访问它的元素,因为声明数组只是给数组名字和元素的数据类型,要想使用数组,还要为其分配内存空间,且分配内存空间时,指定数组的长度,语法如下:

数组名字 = new 数组元素类型[数组元素的个数];
arr = new int[5];

数组名字:已经声明的数组变量的名称
new:对数组分配空间的关键字
数组元素的个数:指定数组中变量的个数,即数组的长度。

声明数组并分配内存空间

int month[] = new int[12];

上面的代码创建了一个一维数组month,并指定了数组的长度是12

3.2.1 初始化一维数组

数组可以和基本数据类型一样进行初始化,数组的初始化可以分别初始化数组中的每个元素。

int arr[] = new int[]{1,2,3};//第一种初始化方式
int arr2[] = {5,6,7};//第二种初始化方式

初始化数组时,可以省略new运算符和数组的长度,编译器根据初始值的数量来自动计算数组长度,并创建数组。
一维数组练习

public class SumNum {
    public static void main(String[] args) {
        //使用数组存储1-5这5个整数
        //求出这5个数的和,并输出
        int arr[] = {1,2,3,4,5};
        int sum = 0;
        for (int i = 0; i < 5; i++) {
            sum = sum + arr[i];
        }
        System.out.print(sum);
    }
}


获取一维数组的小值练习

public class MinNum {
    public static void main(String[] args) {
        //通过for循环和if条件语句,再根据数组
        //下标求出数组元素中最小的值
        int num[] = {8,3,4,6,10};
        System.out.println("输出一维数组");
        for (int i = 0; i < num.length; i++) {
            System.out.println(num[i] + " ");
        }
        int min = num[0];
        for (int j = 0; j < num.length-1; j++) {
            if (min > num[j + 1]) {
                min = num[j + 1];
            }
        }
        System.out.println("数组最小的值是" + min);

    }
}

3.3 二维数组
二维数组声明语法:

数组元素类型 数组名字[][];
数组元素类型[][] 数组名字;

创建二维数组语法:

int myarr[][];

二维数组在声明时,没有分配内存空间,同样也要用关键字new来分配内存,然后才可以访问每个元素。

a = new int[2][4]

分配内存后,二维数组a有两个长度是4的一维数组,分配图如下:

分别为每一维单独分配内存:

a = new int[2][];
a[0] = new int[2];
a[1] = new int[3];

二维数组初始化

type arrayname[][] = {value1,value2,value3...};
int myarr[][]{{1,2,3},{4,5,6}};
posted @   与或非丶  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示

目录导航