数组的概念:一维数组,二位数组和Arrays类(其中在java中二维数组很少使用)
数组是存储一组具有相同数据类型的数据元素的有序集合。
所有的数组都有length属性(Java自带)用于获取数组中的元素个数。
目录
数组的声明
int array[];
int[] array;
(数据类型 数组名[]) (数据类型[] 数组名)
在java中,数组只是声明的话,并没有给数组分配内存空间。在使用数组前还必须对其进行初始化。
数组的初始化方式可以分为:静态初始化和动态初始化。
数组初始化
静态初始化:
当数组元素直接在{}给出的的时候,就称为静态初始化。
int array[] = {1,2,3,4,5,6,7,8,9};
String sarray[] = {"520","1314","5201314"};
注意:不能在[]中指定数组长度,未初始化不能使用
动态初始化:
动态初始化先用new为数组分配内存,并且把每个元素都赋值为0
int array[] = new int[10]; // 这就是分配可以存放10个int类型的内存
数据类型 数组名[] = new 数据类型[size];
Arrays类的引入
数组是一种非常常用的结构,并且在程序中会大量对数组中的元素进行查找、排序等操作,虽然使用循环,条件分支等流程控制可以满足需求,但程序会显得比较杂乱,不易阅读。
Java中提供了工具类Arrays,辅助编程人员简化数组的常用操作。
import java.util.Arrays; //引入Arrays类
- 排序方法:
sort(int[] a)
:对指定 int 型数组按数字升序进行排序。sort(Object[] a)
:对指定对象数组根据其元素的自然顺序进行排序。- 还有其他重载的
sort
方法,包括用于不同类型的数组(如long[]
,double[]
,char[]
等)。
- 搜索方法:
binarySearch(int[] a, int key)
:使用二分查找算法在指定 int 型数组中查找特定值的索引。该数组已按升序排列。binarySearch(Object[] a, Object key)
:在指定对象数组中查找具有指定值的对象的索引,该数组已按升序排列。- 类似地,还有用于其他类型数组的二分查找方法。
- 填充方法:
fill(int[] a, int val)
:将指定的 int val 值分配给指定 int 型数组的每个元素。fill(Object[] a, Object val)
:将指定的对象引用分配给指定对象数组的每个元素。
- 比较方法:
equals(int[] a1, int[] a2)
:如果两个指定的 int 型数组彼此相等,则返回 true。deepEquals(Object[] a1, Object[] a2)
:如果两个指定数组彼此深层相等,则返回 true。- 这些方法帮助检查两个数组是否相等(在
equals
的情况下是元素值相等,在deepEquals
的情况下是元素值相等且数组结构也相同)。
- 转换为字符串:
toString(int[] a)
:返回指定数组内容的字符串表示形式。toString(Object[] a)
:返回指定对象数组内容的字符串表示形式。
- 复制数组:
copyOf(int[] original, int newLength)
:复制指定的数组,以使副本具有指定的长度。
这只是 Arrays
类提供的一部分方法。实际上,Arrays
类为各种数据类型的数组还提供了广泛的其他方法,这里不一一列举。
这是作者学习笔记,若有不对的地方欢迎留言补充。