数组和二维数组

一、数组的基本使用

二、数组的常见错误

三、二维数组的使用

四、Arrays类的操作数组

为什么需要数组,数组可以更好的保存每一个变量,声明一个变量就是在内存空间划出一块合适的空间,声明一个数组就是在内存空间划出一串连续的空间,数组是一个变量,存储相同数据类型的一组数据

一、数组的基本使用

数组基本要素:

标识符-->数组名             数组元素-->值               元素下标-->从0开始        元素类型-->类型

如何使用数组:

一、声明数组:int[]  a;

        声明数组就是告诉计算机数据类型是什么,声明数组时不规定数组长度,

        语法:

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

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

        通常使用的是第二种语法。

二、分配空间:a= new  int[5];

        分配空间就是告诉计算机分配几个连续的空间,在[]里面写上数值

        因为下标是从0开始的,所以定义了是五个空间,a[4]是a数组最大的一个

三、赋值:a[0]= 8;

        数组赋值就是向分配的格子里存放数据。

        这里的意思是给第一个格子赋值8

        赋值方法:

                ①、边声明边赋值:int[] a = {1,2,3};    int a = new int[]{1,2,3};(不能指定长度)

                ②、动态的从键盘录入信息并赋值,这里可以使用循环的方法

                      

Scanner sr =new Scanner(System.in);
for(int i =0; i<30 ; i++){
    a.[i] = sr.nextInt();
}

      

四、处理数据:a[0] = a[0]*10;

        因为数组是一个变量,所以数组里面的值也是可以进行正常的加减乘除运算

二、数组的常见错误

一、定义一个数组a,打印输出a的值是数组的地址值而不是数组里面的数,想要打印数组里面的数可以使用循环的方式,一个一个输出打印。

二、定义数组长度必须保持不变,后期不能更改,避免越界。

三、数组中的所有元素必须属于相同的数据类型。

数组的要素:

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

        new数Java中在内存开辟空间的方式,优先级是Java中最高的

        声明数组的[] 是可以任意放

数组赋值:

可以声明和赋值一起

①、int[] a = {1,2,3,4,5};

相当于new了一个长度为五的数组;

②、int[] b = new int[]{1,2,3,4,5};

中括号不能填写数组长度,应为后面已经定义了数组长度

这两种方法也不能分开写

int[] c;

c = {1,2,3};这样是错误的,不能分开赋值,创建数组并赋值的方式必须在同一语句中完成

③、可以循环的利用动态从键盘录入赋值

四、两个数组如果数组里面的内容一样,但是两个数组并不相等因为地址值不一样。

五、int[] a  =b ;

是把b的地址值赋值给a,所以两个数组是相等的,这时候a里面的元素改变了之后,b里面的元素也改变了。

六、查看数组的长度可以使用.lenght,比如a.lenght就是a的数组长度了。

七、数组越界不会编译报错,会运行报错,因为没有运行所以计算机不会知道数组长度

三、二维数组的使用

二维数组本质上是一维数组,其中的元素为一维数组。

定义二维数组:

        ①、int[]  a = {{1},{1,2},{1,2,3}};直接赋值

        ②、int [] [] a = new int[5][];

        其中第一个[]表示二维数组的长度,也就是二维数组有几个元素,所以是必须定义的,

        第二个[] 表示的是在二维数组中这个元素的第几个元素,例如[2][3];表示的是二维元素的第二个当中的第三个元素,在定义时可以不用定义。

二维数组和一维数组一样,定义类型是什么,二维数组中的值就是什么类型

四、Arrays的使用

Arrays类是提供操作数组的方法,如:排序、查询等等作用。

使用Arrays类首先需要导包,java.util.Arrays

方法名称说明
boolean equas(a1,a2)

比较a1和a2两个数组是否相等

sort(array)对数组array的元素进行升序排列
String toString(a)将一个数组a转换成一个字符串
void fill(array,val)把数组array所有元素都赋值为val
copyOf(array,lenght)把数组array复制成一个长度为lenght的新数组,返回类型与复制的数组一致
int binarySeach(array,val)查询元素值val在数组array中的下标(要求数组中的元素已经按照升序排列)
package demo01;
//Arrays的用法
import java.util.Arrays;

public class demo05 {
	public static void main(String[] args) {
		int[] a = {5,9,6,7,8,3};
		Arrays.sort(a);
		//让数组a里面的元素升序排列
		int[] b = {5,9,6,7,8,3};
		System.out.println(Arrays.toString(a));
		//让数组通过【】形式输出
		System.out.println(Arrays.binarySearch(a, 3));
		//查找3在a数组元素中的下标
		System.out.println(Arrays.equals(a, b));
		//判断两个数组里面的元素是否相等,a[0]比b[0]的形式
		int[] c = Arrays.copyOf(a,3);
		//复制a数组的元素,3表示c的长度,不够就借到当前位置,多了就补零
		System.out.println(Arrays.toString(c));
		Arrays.fill(c, 3);
		//让c数组元素里面都变成3
		System.out.println(Arrays.toString(c));
	}

}

copy如果长度和他复制的数组长度不一样,小于的话就会截取掉,只截取到新数组长度的位置,多了的话就会自动补零

copyOfRange(a,1,3)表示创建一个长度为三的数组截取a数组从下标1开始

binarySearch如果查找的下标不存在就会返回负数,且数组必须先排序完之后再用,否则会报错

多维数组:

        三维及以上的数组很少使用,主要使用二维数组,从语法上Java支持多维数组

        从内存分配原理角度讲,只有一维数组。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值