栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java —— 数组篇

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java —— 数组篇

一、数组的认识:
  • 数组是固定个数的相同类型的元素集合,有顺序,可重复。
  • 数组的构成有四大要素:数组的数据类型,数组的长度,数组的数组名,数组的下标。
数组的特点:
  • ①数组是有序排列的
  • ②数组属于引用数据类型的变量。数组的元素,既可以是基本数据类型,也可以是引用数据类型
  • ③创建数组对象会在内存中开辟一整块连续的空间
  • ④数组的长度一旦确定,就不能修改。
  • 1.1数组的声明和创建:

        数据类型[ ]  数组名;

        数据类型  数组名[ ];

1.2创建数组的方法:

1.2.1用new关键字:

        数组名 = new 数据类型[数组长度];

        arrayName = new type[size];

其中,数组长度就是数组中能存放的元素个数,显然应该为大于 0 的整数 。

当然也可以在声明数组时就给它分配空间:

        数据类型[] 数组名 = new 数据类型[数组长度];

        type[] arrayName = new type[size];

1.3一维数组的静态初始化:
  • 定义数组(为数组的数组元素分配内存空间)的时候直接给数组赋初始值。
  • Java 语言中数组必须先初始化,然后才可以使用。

静态初始化数组的格式:

 

1.4数组的基本原理:

 注意:数组变量名中存储的是数组在内存中的地址,数组是引用数据类型。

1.5数组的引用:

通过下标来引用/调用数组,或者说数组中元素的访问方式为:

数组名称[索引]

arrayName[index];

数组的长度属性:length

// 获取数组的长度(就是数组元素的个数)
System.out.println(arr.length); // 3

注意:length是属性,不是方法。

图解:

 1.6数组的引用:

// 取值
System.out.println(arr[0]); // 12
// 赋值
arr[2] = 100;
System.out.println(arr[2]); // 100

问题:数组的最大索引可以怎么表示? 

答:数组名. length – 1 // 前提:元素个数大于0

1.7一维数组的动态初始化:

 定义数组的时候只确定元素的类型和数组的长度,之后再存入具体数据。

动态初始化的格式:

 1.8数组的几个注意事项:

 

1.9数组遍历: 遍历:就是一个一个数据的访问。也叫轮询。

//数组长度为5,索引范围【0-4】

int[] a = {20, 30, 40, 50};
for (int i = 0; i < a.length; i++) {

    //数组下标刚好与循环变量i对应. 所以可以写a[i]
    System.out.println(a[i]);
}

普通循环:for、while、do while皆可。

1.10 for each遍历数组:

java5之后,Java提供了一种更简洁的循环:foreach循环,这种循环遍历数组和集合更加简洁。

使用foreach循环遍历数组时,无须获得数组和集合长度,无须根据索(下标)引来访问数组元素,foreach循环自动遍历数组和集合的每一个元素。

1.10.1 for  each格式:

for (数据类型 变量名 : 遍历对象数组名){

     循环语句;

}

例子:

int arrays[3];

for(int array : arrays){

     System.out.println(array)

}

1.10.2一维数组的两种数组定义时的特点和场景有什么区别?
  • 当前已经知道存入的元素值,用静态初始化。
  • 当前还不清楚要存入哪些数据,用动态初始化。 

1.8一维数组案例:
 //案例一:数组遍历-求和
        //需求:某部门5名员工的销售额分别是:16、26、36、6、100,请计算出他们部门的总销售额。
        int[] arr={16,26,36,6,100};
        int l = 0;
        for(int count:arr ) {
            count=arr[0]+arr[1]+arr[2]+arr[3]+arr[4];
            l=count;
        } 
        System.out.println(l);
//案例二:数组元素求最大值
        int[] arr = {15, 9000, 10000, 20000, 9500, -5};
        int max = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        System.out.println("该数组里面的最大值是" + max);
// 案例三:猜数字游戏
//        需求:
//        开发一个幸运小游戏,游戏规则如下:
//        游戏后台随机生成1-20之间的5个数(无所谓是否重复),然后让大家来猜数字:
//        未猜中提示:“未命中”,并继续猜测
//        猜中提示:“运气不错,猜中了”,并输出该数据第一次出现的索引位置,最后把数组中的5个数据都输出看以下, 然后结束本游戏。
               int[] data = new int[5];
        //2.动态的生成5个1-20之间的随机数并存入到数组中去
        Random r = new Random();
        for (int i = 0; i < data.length; i++) {
            //i = 0 1 2 3 4 5
            data[i] = r.nextInt(bound:20)+1;

        }
        //3.定义一个死循环让用户进行猜测
        Scanner sc = new Scanner(System.in);
        while (true) {
            System.out.println("请输入一个1-20之间的整数进行猜测: ");
            int guessData = sc.nextInt();
            //4.遍历数组中的每个数据,看是否有数据与猜测的数据相同,相同代表猜中了并给出提示
            OUT:
            for (int i = 0; i < data.length; i++) {
                if (data[i] == guessData) {
                    System.out.println("运气不错,猜中了!您猜中的数据索引是: " + i);
                    break OUT;//结束了整个死循环,代表游戏结束了!
                }
            }
            System.out.println("当前猜测的数据在数组中不存在,请重新猜测!");
            return;
        }
        //5.输出数组的全部元素,让用户看到自己确实猜中了
        for (int i = 0; i < data.length; i++) {
            System.out.print(data[i] + "t");
        }
 //案例4: 随机排名
        
        //22    33    35    13  88 ----->随机排名
        int[] jobNumber=new int[5];//动态初始化一个数组,存储5个工号
        Scanner sc=new Scanner(System.in);
        Random r=new Random();
        //定义一个循环,循环5次,依次录入一个工号存入对应的位置
        for (int i = 0; i  

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1032047.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号