java基础(四)

数组

数组是一个引用类型。

数组是一个容器,用来存储若干个相兼容类型的数据。

数组的长度:数组的容量,一个数组可以容纳多少个数据。

特点:是一个定长的容器,一旦长度确定,不可修改。

1.数组的定义:

实例化:开辟空间,用来存储内容。用在数组中,表示对数组赋初始值。

//1.通过一个长度,来实例化一个数组,数组中的元素是该数据类型的默认值。
int[] array1 = new int[10];

//2.通过一些初始值,来实例化数组,数组的长度由大括号中的元素数量而定。
int[] array2 = new int[]{1,3,5,7,9};

//3.new int[]可以省略
int[] array3 = {1,2,3,4,5};

2.数组中元素的访问

什么是元素:指的是数组中存储的各个数据。

如何访问:通过下标访问,每一个元素在数组中都有一个下标,下标表示一个元素在数组中的位置,是一个序号。数组的下标是从0开始的。

语法

array[index];

遍历数组

1.遍历下标

for(int i = 0; i<array.length; i++){
    System.out.print(array[i]+",");
}

2.增强for循环

//逻辑:一次从数组中获取每一个元素,并给ele赋值
for(int ele : array){
    System.out.print(ele+",");
}

对比下标遍历和增强for循环:

  1. 效率:增强for循环效率高;
  2. 功能:遍历下标的方式功能性更强。

3.引用数据类型

java中所有的数据可以分为基本数据类型和引用数据类型

内存:实例化数组,实在堆上开辟空间,数组在堆上开辟空间并不是一个整体的空间。

int[] array = new int[10];
  • new int[10]:在堆上开辟了连续10个4字节的空间
  • int[] array:在栈上开辟的一块8字节空间
  • =:赋值,内存的每块空间都有一个内存地址, 赋值是将堆上开辟的连续的空间的首元素地址给左边的变量赋值。

因为array中持有new int[10]在堆上的地址,我们可以将array称作是堆上空间的引用,这样的数据类型就是引用数据类型。

4.数组排序

对数组中的元素,按照规则进行重新排列。

选择排序:固定一个下标,用这个下标对应的元素,依次和后面的元素进行比较,如果满足交换条件,则进行交换。

冒泡排序:一次比较两个相邻的元素,满足交换条件的,进行交换。

5.数组中的元素查询

元素查询:查询某一个元素在数组中出现的下标。(如果数组中不包含这个元素,则返回-1)

顺序查询:遍历数组中每一个元素,判断是否是需要查询的元素。

二分查询:对一个排序的数组,每次从查询区间的一半进行查询。

6.动态参数列表

语法:int ... array,其实是一个数组,可以将实参列表中的若干个int类型的数据整合到一个数组中,我们在调用这个方法的时候,可以直接将元素写到实参列表中。

注意事项:动态参数必须放到参数列表的最后位。

7.Arrays工具类

Arrays是一个类,提供了若干个用来操作数组的方法。

binarySearch:二分查询

copyOf:将数组中newLength长度的元素拷贝到新数组中,并返回这个新的数组。如果源数组的长度小于newLength,则新数组中最后多余的元素为默认值。

copyOfRange:将数组中指定范围的元素拷贝到新数组中,并返回这个新数组。

equals:判断两个数组中的元素是否相同。

fill:将参数val的值填充到数组中。

sort:对数组中范围内的元素进行升序排序。

toString:返回一个数组的字符串表示形式,把数组中的每一个元素拼接成一个字符串。

8.其他

null表示空,表示没有地址,没有指向任何的空间。

数组拷贝:浅拷贝:地址拷贝,将一个数组的引用直接给另一个引用赋值,此时这两个引用同时指向一块空间。

                    深拷贝:元素拷贝,实例化一个新的数组,长度与源数组相同,将源数组中的元素依次拷贝到新数组中。

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值