数组与多维数组

一、数组

什么是数组?

数组就是用来存储一组相同类型数据的数据结构。

数组是引用类型数组中的元素可以是基本数据类型也可以是引用数据类型

数组的定义格式

数据类型[ ]数组名

int[]arr;
double[]arr;
char[]arr;

也可以这样写

数据类型 数组名[]

int arr[];
char arr[];
double arr[];

数组的动态初始化

动态初始化就是只给数组的长度,由系统给出默认的初始化值。

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

int [] arr=new int [5]; //[5]代表数组的长度   new:为数组开辟内存空间

 数组的元素访问

索引也叫下标

每一个存储到数组的元素,都会自动的拥有一个编号,从 0 开始。
这个自动编号称为数组索引 (index) ,可以通过数组的索引访问到数组中的元素。
数组中索引的最大值,就是数组的长度 -1
数组可以通过 数组名 .length 获取数组的长度。
访问数组元素格式
数组名[索引]
public class**{

public static void main (String[]args){
//定义一个长度为三的数组
int[] arr = new int[3];
//给下标为0,1,2的元素赋值
 arr[0]=1;
 arr[1]=2;
 arr[2]=3;

System.out.println(arr[0]); //输出下标为0的数
 System.out.println(arr[1]); //输出下标为1 的
System.out.println(arr[2]);//输出下标为2的

    }
}

内存分配

栈内存:方法运行时使用的内存,比如main方法运行,进入方法栈中执行

堆内存:存储对象或者数组,new来创建的,都存储在堆内存。

方法区:存储class文件

**程序执行时,将字节码文件(class文件)加载到方法区,jvm自动调用main方法,此时进入main方法的栈内存,如果在main方法中声明并创建了一个数组对象,则数组声明的对象位于栈内存中,而当前数组实际存放数据位于堆内存中,堆内存会产生一个地址,并且把该地址赋值给数组名,所以数组名实 际上是对堆内存地址的引用

引用类型,对象位于栈内存,对象存储的数据都会位于堆内存

数组的静态初始化

静态初始化化就是 创建数组时直接给定值。

完整格式:

数据类型[]数组名=new 数据类型[]{元素1,元素2 ,...}//元素与元素之间用逗号隔开

int[]arr=new int[]{1,2,3,4,5}

简化格式:

数据类型[]数组名={元素1,元素2 ,...}

int arr[]={1,2,3,4,5}

数组遍历

数组遍历:就是将数组中的每个元素分别获取出来,就是遍历。
public class xx { 
public static void main(String[] args) {
int[] arr = { 1, 2, 3, 4, 5 };
System.out.println(arr[0]);
System.out.println(arr[1]);
System.out.println(arr[2]);
System.out.println(arr[3]);
System.out.println(arr[3]);
    }
}

这样可以输出所有元素。但比较麻烦

因此我们可以使用for循环
public class xx{
public static void main(String[]args){
    
     int []arr={1,2,3,4,5,6,7,8,9}
    for(int i=0; i<arr.length;i++){
      System.out.in(arr[i]);

          }
    }
}

数组获取最大值  

找出数组中的最大值

定义变量,保存数组 0 索引上的元素
遍历数组,获取出数组中的每个元素
将遍历到的元素和保存数组 0 索引上值的变量进行比较
如果数组元素的值大于了变量的值,变量记录住新的值
数组循环遍历结束,变量保存的就是数组中的最大值
public class xx {
public static void main(String[] args) {

    int[]arr={1,2,3,4,5,6,78,98}
    int max=arr[0];//假设第一个数为最大值
//遍历数组,
    for(int i=0;i<arr.length;i++){
        //如果数组中的值比max大 ,那么让max就等于这个值;然后继续进行比较
        if(arr[i]>max)//i{
        max=arr[i]
        }
    }
        System.out.println("最大值:" + max);
}
}

多维数组

二维数组:二维数组就是存储一维数组的数据结构;二维数组中的元素是一维数组

二维数组的动态初始化:

数据类型[][]数据类型=new 数据类型[一维数组的个数][一维数组中的元素个数] 

二维数组的静态初始化:

数据类型[][]数组名称={{1,2,3,4},{2,3,4,5,6}{7,8,9}}

二维数组的遍历输出

使用双重for循环

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

}


    }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值