java数组概述——静态数组和动态数组的使用及对比

发布时间:2023年12月29日

引言:

学到数组了,记录下学习心得,daydayup!

?认识数组

1,数组是一类容器,用来储存一批相同类型的数据(不可以混类储存)

正确表示:int [ ] age= new [ ] {18,19,20,30}??

错误表示:string [ ]? name = new [ ]{"黎明" ,"小红","梨花",14,27}

(字符和数字不能一起存储,只能同类存储)

?2,已经有了变量,为什么使用数组?

因为编写简洁,修改方便。像是点名系统,统计系统,数组的使用会减轻编程的工作量

?3,数组的分类

数组分为静态数组动态数组

4,数组的工作原理

和一般变量不同,数组是引用变量,不是直接定义变量,而是在内存区定义出一块空间,使数据存在内存里,在需要使用的时候,从内存区引用出来

?下面先来谈谈静态数据和动态数组

静态数组

静态数组是定义好长度和数据的数组,表示如下

类型[] 数组名字= new 类型[] {数据1,数据2,数据3}

?练习:有五个学生,年龄分别为13,14,15,16,17,请用数组的方式记录下来

int[] age = new int[]{13, 14, 15, 16, 17}

?同时数组的表示会有两种简便写法,如下

类型[] 数组名字= {数据1,数据2,数据3}
类型 数组名字 [] ={数据1,数据2,数据3}

第一种是规范写法,第二种是常用写法,第三种不太推荐使用?

1,数据的输出

数组是引用变量,数据是定义在内存空间里的,为了方便引用,存储在内存中的数据每一个都存在编号,第一个数据为编号0,第二个数据为编号1

实验:现在有一组数组String [] name ={"李磊","王安石","李白"},请输出”李磊“这个名字

实验思路:李磊在第一个编号,数组储存在内存区的第一个编号为0,所以输出name[0]

public class arraydemo2 {
    public static void main(String[] args) {
        String [] name ={"李磊","王安石","李白"};
        System.out.println(name[0]);
    }
}

实验效果:成功输出李磊

2,数据的更改

把已有的数组里的数据替换为其他数据

实验:现在有一组数组String [] name ={"李磊","王安石","李白"},现在李磊改名为”梨花“,请修改数组

public class arraydemo2 {
    public static void main(String[] args) {
        String [] name ={"李磊","王安石","李白"};
         name[0]="梨花";//把李磊修改成梨花
        System.out.println(name[0]);
    }
}

实验效果:成功输出梨花

3,数组的最大长度

?数据过多时,直接数不太直观,可以通过length知道存在多少个数据

练习:已知int[] sd = new int[]{13, 14, 15, 16, 17},请用length知道这个数组里含有多少个数据


        int[] sd = new int[]{13, 14, 15, 16, 17};
        System.out.println(sd.length);

实验结果:输出5

4,数据遍历

引入循环结构,通过length语句一个一个输入数据

练习:已知数组int[] se = {12, 12, 13, 14, 14},请通过for语句输出全部数值

int[] se = {12, 12, 13, 14, 14};
for (int i = 0; i < se.length; i++) {
            System.out.println(se[i]);
        }

实验结果:可以依次输出12,12,13,14,14?

综合小练习:

练习:已知公司有5个销售人员,他们的业绩分别为12,14,25,12,24,问公司的总业绩为多少?

 int [] yeji = {12,14,25,12,24};
        int sum = 0;
        for (int i = 0; i < yeji.length; i++) {
            sum +=  yeji[i];
        }
        System.out.println(sum);

可以输出为87

动态数组

动态数组是只定义好长度不定义数据的数组,表示如下

类型 [] = new 类型 [数据数量]

例:请建立一个名为lucy可以存10个数据的数据

int [] lucy= new int[10]

其余操作和静态数据一模一样,不做过多叙述

综合小练习:

实验:五位裁判给选手打分,平均分为选手的最终得分

实验思路:首先定义一个长度为5的动态数组。因为要打分,所以引入scanner(扫描器),又因为要算最终得分,所以引入循环结构进行累加

import java.util.Scanner;

public class array {

    public static void main(String[] args) {


 int[] chengji = new int[5];
            int sumw = 0;
        Scanner ll =new Scanner(System.in) ;
        for (int i = 0; i < chengji.length; i++) {
            System.out.println("第"+(i + 1)+"位老师请打分");
           chengji[i]= ll.nextInt();
             sumw +=  chengji[i];
        }
        System.out.println(sumw / chengji.length);


    }
}

实验结果:通过自定义输出数值,可以得出平均分

动态数组和静态数组的对比

静态数组和动态数组在语法功能上没有什么不同。但根据语法结构,适用的业务有所不同

静态数组:适用于已经知道数据内容的场合,例如:点名系统,统计系统等

动态数组:适用于自行输入数据的场合,例如:比赛记分,数据检测等

---------------------------------------------------------------------------------------------------------------------------------

最后

如果您看到了这篇文章,同时您也在学习java,希望您阅读这篇文章,希望与您一起讨论

基于黑马程序员的java学习笔记(持续更新)

文章来源:https://blog.csdn.net/l822099133/article/details/135279084
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。