java数组的解析

1.为什么需要数组:

1.案例分析:一个养鸡场有 6 只鸡,它们的体重分别是 3kg,5kg,1kg,3.4kg,2kg,50kg 。请问这六只鸡的总体重是多少?平 均体重是多少? 请你编一个程序

2.用以前的思路分析,定义6个double变量分别存放这6只鸡的体重,求和/个数就等到了

问题:这样如果有100只鸡我们就需要100个变量,就会很麻烦,所以引出了---->今天的主角数组

2.数组的介绍

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

即:数(数据)组(一组)就是一组数

3.数组的初始化

数组的初始化主要分为两种:

                                            1.静态初始化

                                            2.动态初始化    

方法一:

数组类型[]   数组的名字 = {元素值,元素值……}

数组类型 数组名[] = {元素值,元素值……}

两种方法都是一样的但是我们一般用第一种形式

int[] arr = {5,6,4,3,5};  //这里的大小是看你给定的元素

方法二:

数组类型[] 数组的名字 = new 数组类型[数组的大小]

数组类型 数组的名字[] = new 数组类型[数组的大小]

两种方法都是一样的但是我们还是用第一种 

int[] arr = new int[3]; //这里给定的大小是3如果存放的数组超过这个大小就会报错

数组格式的讲解

  •         数据类型是什么类型,数组就是什么类型

  •         数组的声明:
  •                                 数组类型[] 数组名    或    数组类型  数组名[]都是一样的
  •         创建数组:
  •                                 我们使用动态的时候:语法: 数组名=new 数据类型[大小]
  •                                                                                 int[] a=new int[10]
  •         数组的大小:我们给的数组大小是多大我们就存放多大

                注意:数组有定长特性,长度一旦指定,不可更改。

4.数组的注意事项

  •  数组是多个相同类型数据的组合,实现对这些数据的统一管理
  •  数组中的元素可以是任何数据类型,包括基本类型和引用类型,但是不能混用。
  • 数组创建后,如果没有赋值,有默认值 int 0,short 0, byte 0, long 0, float 0.0,double 0.0,char \u0000,boolean false,String null
  •  使用数组的步骤
  • 1. 声明数组并开辟空间
  • 2 给数组各个元素赋值
  • 3 使用数组
  • 数组的下标是从 0 开始的。
  •  数组下标必须在指定范围内使用,否则报:下标越界异常,比如
  • int [] arr=new int[5]; 则有效下标为 0-4
  •  数组属引用类型,数组型数据是对象(object)

举例:

 如果我们超出了下标的范围又会发生什么呢?让我们一起看一看

能看到他给我们报了一个访问越界的错误,所以我们一定要记得下标是从0开始的

 

5.数组的赋值机制(重要)

 数组是引用数据类型是地址传递,尔基本数据类型是值传递

执行流程

  1. main方法进入方法栈执行

  2. 创建数组,JVM会在堆内存中开辟空间,存储数组
  3. 数组在内存中会有自己的内存地址,以十六进制数表示
  4. 数组中有3个元素,默认值为0
  5. JVM将数组的内存地址赋值给引用类型变量arrNew
  6. 变量array保存的是数组内存中的地址,而不是一个具体数值,因此称为引用数据类型。

6.数组的遍历 

数组的遍历就是吧每一个数组的值遍历出来,这也是数组里面的基础

public static void main(String[] args) {
    int[] arr = {1,2,3,4,5,6,7,8};
    for(int i = 0; i < arr.length; i++){
        System.out.print(arr[i]+" ");
    }
}

7.数组的扩容

问题的提出,我们都知道数组的大小定义之后呢就无法改变了,我们要是还需要添加元素怎么办呢,这个时候我们就提出了数组扩容 

8.多维数组 

多维数组我们用的最多的就是二维数组,所以我们重点讲解一下二维

二维数组也是有两种初始化情况

1.动态初始化

先声明:类型 数组名[][]; 

再定义(开辟空间) 数组名 = new 类型[大小][大小]

赋值(有默认值,比如 int 类型的就是 0)

2.静态初始化

定义 类型 数组名[][] = {{值 1,值 2..},{值 1,值 2..},{值 1,值 2..}}

使用即可 [ 固定方式访问] 

举例:

int[][] arr  = {{1,2,30},{4,5,6},{7,8,9}};
//这个时候就是有3行3列大小的数组
//arr有3个元素,第一个一维数组有3个元素 , 第二个一维数组有3个元素, 第三个一维数组有3个元素
//因为二维数组的每一行都是一维数组,所以我们要以大括号括起来 

二维数组的列数可以是不确定的

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

二维数组的声明

分为3种

int[][] y 或者 int[] y[] 或者 int y[][]

遍历二维数组

 


版权声明:本文为weixin_48735871原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。