java 二维数组作用_Java基础--数组、二维数组

数组

为什么要学习数组?

目前为止,我们学习的所有数据的存储都是单个的

如果要求记住多个同一类型的数据。需要用到数组

数组:

能够存储多个变量的容器

这个容器中所存的变量的数据类型是一致的

特点:

1.这个容器中所存的变量的数据类型是一致的

2.按连续内存地址空间存放

3.数组长度一旦确定就不能更改

4.数组在创建后,会自动初始化    int----0    double------0.0   引用类型为------null

数组格式的定义:

数据类型 [] 数组名

数据类型 数组名 []

数组的定义完成后,数组中是没有数据

初始化数组

在java中,数组必须初始化以后,才能够使用;

初始化就是为了在内存中开辟内存空间:

就是为数组元素分配内存空间,并且为每一个数组元素(数组中的多个变量)赋值

初始化类型

1.静态初始化: 给出初始化的值,长度由数组决定

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

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

4.动态初始化:只会指定长度,由系统初始化元素

5.数据类型[ ] 数组名 = new 数组类型[数组的长度]

左边:

数据类型:表示数组中元素保存的类型

[]:表示这是一个数组

数组名:数组的名字

右边:

new :为数组 在内存中分配空间

数组类型:数组中所有的元素的类型

[数组的长度]:数字表示数组的长度

数组是有长度的

数组有元素的位置:有下标(索引)

数组长度从1开始

数组下标(索引)是从0开始的

数组最后一个元素的下标:数组长度-1

数组的长度是固定的 不可更改

直接输出数组对象(变量),得到的不是数组元素 ;而是数组存储元素内存地址

数组下标为什么从零开始?

因为下标为0的元素与数组变量的地址相差0个元素(下标为1的元素与数组变量的地址加1)  偏移量(相差几个元素 偏移量就是 几)

变量、常量与数组的区别

变量、常量 存储一个数据

数组存储多个数据

JVM内存划分的作用

提高运算效率

堆 (存储的是new出来的对象)

栈 (存储局部变量) 先进后出

方法区 (面向对象)

本地方法区(跟系统相关)

寄存器(是CPU使用)

Arrays .tostring():

将数组转换成为字符串输出打印

向数组中添加一个元素

创建一个新数组,将原数组中的值赋值给新数组;

将新的元素添加到新数组的最后一个位置;

将新数组改名:数组是一个变量,保存的是数组的难处地址,就是保存了整个数组的变量;

遍历:

对数组中的元素一次输出

基本数据类型和引用数据的区别

基本数据类型

只有4类8种

基本数据类型的值存放在变量中

引用数据类型

不是关键字 是有程序员自定义的

变量中存放的是一个引用 只想真正存放值的空间

Random

用来产生随机数

Math.random()产生的随机数范围大于等于0,小于1

Double random = Math.random();

System.out.println(random);

二维数组

概述:

二维数组 就是一个元素为一个一维数组;

格式定义:

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

数据类型数组名 [][];      只需要知道,不推荐使用

数据类型[]数组名 []; 只需要知道,不推荐使用

初始化

数据类型[][] 数组名=new 数据类型[m][n]

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

{元素1},

{元素2},

{元素3}

}

数据类型[][] 数组名={

{元素1},

{元素2},

{元素3}

}

(如有纰漏请见谅)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
主要内容: 1. 数组的定义 2. 数组的分类[按维数] 3. 数组的用法 4. 数组的常见操作 java中的foreach实现方式 一维数组 1. 定义:省略 2. 用法: 声明并赋值: //方法一:先声明,再赋值 int [] arr=new int[5]; arr[0]=10; arr[4]=100; arr[5]=10;//语法无误,编译时报错:java.lang.ArrayIndexOutOfBoundsException System.out.println(arr[5]);//语法无误,编译时报错:错误同上 //方法二:使用for循环动态赋值 //导入java.util.*;包 Scanner input=new Scanner(System.in); int [] arr=new int[5]; for(int i=0;i<arr.length;i++) { System.out.println("请输入第"+(i+1)+"个值"); arr[i]=input.nextInt(); } //方法三:声明时赋值 int [] arr=new int[]{23,45,56,67}; int [] arr1={23,45,56,67}; int [] arr2= new int[5]{23,45,56,67};//错误,此时不能给确定的长度 输出: int [] arr=new int[]{23,45,56,67}; //方法一:使用for循环输出 for(int i=0;i<arr.length;i++) { System.out.println(arr[i]); } //方法二:使用foreach输出:此为JDK5.0 新特性 for(int item : arr) { System.out.println(item); } 常见算法: 1. 求一维数组中的最大[小]值 2. 求一维数组中的总和,平均值 3. 添加,删除,修改,搜索等 具体请参考本人FTP\\5.0S1\\JAVA\\数组完整操作范例。[重复让人如此崩溃!] 二维数组 1. 定义:省略 2. 用法: 声明并赋值: //声明时赋值 int [][]arr={ {1,2,3}, {4,5,6}, {7,8,9} }; 输出: //方法一:使用嵌套for循环输出二维数组 for(int i=0;i<3;i++) { for(int j=0;j<3;j++) { System.out.print(arr[i][j]+" "); } System.out.println(); } //方法二:使用嵌套foreach输出二维数组 for(int row[] :arr) //此时不难看出,二维数组可以看作是每个元素都是一个一维数组的一维数组 { for(int item: row) { System.out.print(item+ " "); } System.out.println(); } 补充: //动态创建规则二维数组 int R=10;//行 int N=5;//列 int [][]arr=new int ­[N]; //动态创建不规则二维数组 int arr[][]; arr=new int[2][]; arr[0]=new int[10]; arr[1]=new int[5]; 赋值都一样:此处省略! 算法体验:杨辉三角 int i,j; int a[][]=new int[10][10]; //给每行的第一列,及对角线处均赋值为1 for(i=0;i<10;i++) { a[i][0]=1; a[i][i]=1; } //从arr[2][1]=a[1][0]+a[1][1]; //推出:a[i][j]=a[i-1][j-1]+a[i-1][j]; //即元素等于两肩之和 for(i=2;i<10;i++) { for(j=1;j<i;j++) { a[i][j]=a[i-1][j-1]+a[i-1][j]; } } for(i=0;i<10;i++) { for(j=0;j<=i;j++) { System.out.print(a[i][j]+" "); } System.out.println(); }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值