数组的创建的访问
一维数组的创建
- 一维数组的创建有以下几种方法——
//先声明后定义 int[] array; array = new int[100]; //直接定义 int[] array = new int[100]; //列表定义 int[] array = {1, 2, 3, 4};
多维数组的创建
- 下面以二维数组为例介绍多维数组的创建方法
//直接为每一维分配空间 int[][] s = new int[3][4]; //从最高维开始,分别为每一维分配空间 String[][] s = new String[2][]; s[0] = new String[2]; s[1] = new String[3]; s[0][0] = new String("Good"); s[0][1] = new String("Luck"); s[1][0] = new String("to"); s[1][1] = new String("you"); s[1][2] = new String("!");
数组的访问
- 数组的访问直接使用下标即可
- 一般使用循环遍历数组
int[] array = {1, 2, 3}; for(int i = 0; i < array.length; ++i){ System.out.println(array[i]); } for(int it : array){ System.out.println(it); }
length()
方法,length
属性和size()
方法的区别:length()
方法是针对字符串来说的,要求一个字符串的长度就要用到它的length()
方法;length
属性是针对 Java 中的数组来说的,要求数组的长度可以用其length
属性;- Java 中的
size()
方法是针对泛型集合说的, 如果想看这个泛型有多少个元素, 就调用此方法来查看.
数组作为函数参数和返回值
- 数组作为函数参数
public static void printArray(int[] array) { for (int i = 0; i < array.length; i++) { System.out.print(array[i] + " "); } }
- 数组作为函数返回值
public static int[] reverse(int[] list) { int[] result = new int[list.length]; for (int i = 0, j = result.length - 1; i < list.length; i++, j--) { result[j] = list[i]; } return result; }
Arrays类
java.util.Arrays
类能方便地操作数组,它提供的所有方法都是静态方法(即归属于Arrays类)。
常用方法
Arrays类中有以下常用方法——
int binarySearch(Object[] a, Object key)
用二分查找算法在给定数组中搜索给定值的对象(Byte
,Int
,double
等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。boolean equals(long[] a, long[] a2)
如果两个指定的 long 型数组彼此相等,则返回true
。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(Byte
,short
,Int
等)。void fill(int[] a, int val)
将指定的int
值分配给指定int
型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte
,short
,Int
等)。void sort(Object[] a)
对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte
,short
,Int
等)。copy(Object[] e,newLength)
其第一个形参指的是需要扩容的数组,后面是扩容后的大小,其内部实现其实是使用了System.arrayCopy()
; 在内部重新创建一个长度为newLength
类型是Object
的数组。toString(Object[] arr)
将数组arr
以字符串的形式输出到终端。
方法调用
因为Arrays类中的方法都是静态的,因此调用时应该使用Arrays.methodName
int[] array = {1, 5, 6, 2, 3};
Arrays.sort(array);
System.out.println(Arrays.toString(array));