java数组
1、 数组对于每一门编程语言来说都是重要的数据结构之一,当然不同语言对数组的实现及处理也不尽相同。
2、Java 语言中提供的数组是用来存储固定大小的同类型元素。
3、你可以声明一个数组变量,如 numbers[10] 来代替直接声明 100 个独立变量 number0,number1,…,number9。
声明数组变量
必须先声明数组变量,才能在程序中使用数组。
数组类型 [] 数组名称 ; // 首选的方法
或
数组类型 数组名称[]; // 效果相同,但不是首选方法
例如
int[] array; // 首选的方法
或
int array[]; // 效果相同,但不是首选方法
创建数组
Java语言使用new操作符来创建数组,具体如下
数组类型 [] 数组名称 = new 数组类型[数组空间];
另外,你还可以使用如下的方式创建数组
数组类型 [] 数组名称 = {value0, value1, ..., valuek};
例如
package sc.Test;
public class Array {
public static void main(String[] args) {
//直接声明长度和类型
int[] nums = new int[3];
nums[0] = 1;
nums[1] = 2;
nums[2] = 3;
for (int num : nums) {
System.out.println(num);
}
}
}
数组的运行过程
For-Each循环
JDK 1.5 引进了一种新的循环类型,被称为 For-Each 循环或者加强型循环,它能在不使用下标的情况下遍历数组,具体语法结构为:
for(type element: array)
{
System.out.println(element);
}
例如
package sc.Test;
public class Array {
public static void main(String[] args) {
//直接声明长度和类型
int[] nums = new int[3];
nums[0] = 1;
nums[1] = 2;
nums[2] = 3;
for (int num : nums) {
System.out.println(num);
}
}
}
结果为
二维数组
二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组,例如:
int num[][] = new int[2][2];
也可以直接给数组写入数据,以减少代码量;
int [][] num = {{1,2,3},{4,5,6},{7,8,9}};
这样就直接给int 定义为3行3列的数组
Arrays类
java.util.Arrays 类能方便地操作数组,具有以下功能:
- 比较数组:通过 equals 方法比较数组中元素值是否相等。
- 对数组排序:通过 sort 方法,按升序。
- 给数组赋值:通过 fill 方法
- 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
- 将一个数组array转换成一个字符串:通过Arrays.toString方法。
- 将数组复制成一个长度为length的新数组:通过 Arrays.copyOf方法
例如
通过 equals 方法比较数组中元素值是否相等
//判断数组是否相等 Arrays.equals(数组名,数组名)
//必须两个数组、长度类型一样
//数据的顺序也不能变化
int [] num1 = {5,8,4,3,7,6,1,2};
int [] num2 = {5,8,4,3,7,6,1,2};
boolean i = Arrays.equals(num1, num2);
System.out.println(i)
通过 sort 方法,按升序对数组排序
int[] arr={3,5,1,2,4};
Arrays.sort(arr);
//sort升序
for (int i : arr) {
System.out.print(i);
}
通过 fill 方法,给数组赋值
//把数组array所有元素统一赋值
Arrays.fill(num1,100);
for (int i1 : num1) {
System.out.print(i1+"\t");
}
通过 binarySearch 方法能对排序好的数组进行二分查找法操作,查找数组元素
//查询元素之val在数组中的下标(要求数组中的元素已经按升序排序)
Arrays.sort(num3);
int a = Arrays.binarySearch(num3, 4);
System.out.print(a);
通过Arrays.toString方法将一个数组array转换成一个字符串.
//将一个数组array转换成一个字符串
//Arrays.toString(数组名)(用一个变量接收它)
String s = Arrays.toString(num1);
System.out.println(s);
通过 Arrays.copyOf方法,将数组复制成一个长度为length的新数组
//把数组array复制成一个长度为length的新数组,返回类型与赋值的数组一样
int[] num3 = Arrays.copyOf(num2, 5);
for (int i1 : num3) {
System.out.print(i1);
}