四、数组
数组:一组数,可以使用一个变量存储多个值
- 数组下标范围:0 – length-1(数组的下标从0开始)
- 数组优点:可以使用一个变量存储多个值
- 数组缺点:数组一旦定义,则数组的大小就不能改变
1 - 数组的定义
- java中,允许存在数组长度为0的数组,但长度为0与null不同
byte/short/int/long 默认值 0
float/double 默认值 0.0
char 默认值 空
boolean 默认值 false
//此方式数组定义后,未赋值的情况下,每个位置都有默认初始值
int[] arr = new int[5]; // 方式一
int[] arr = {1,3,2,5,6};// 方式二
int[] arr = new int[]{1,3,2,5,6};// 方式三
-
遍历数组(for each循环语句):
int[] arr = {1,3,2,4,78,34,5,7}; for(int a : arr){ System.out.println(a); }
2 - Arrays
-
数组拷贝
Arrays.copyOf()
int[] arr = {1,2,4,6,3}; int[] arrCopy = Arrays.copyOf(arr,arr.length);//copy时,新数组的数组大小未改变 int[] arrCopyMax = Arrays.copyOf(arr,2*arr.length);//copy时,新数组的数组大小变为arr数组的两倍,值的大小不变
-
数组排序
-
快速排序算法
Arrays.sort();
// 快速排序并输出 int[] arr = {1,2,4,6,3}; Arrays.sort(arr); for(int a : arr){ System.out.println(a); }
-
-
数组的查找
-
Arrays.binarySearch(arr, key);
(底层是二分查找) -
arr: 要查找的数组;key:要查找的数
返回的是key对应位置的下标,未找到则返回负数
public class Main { public static void main(String[] args) { int[] arr = {1,4,12,34,67,87,99,124}; int i = Arrays.binarySearch(arr, 77); if (i < 0){ System.out.println("没有找到该数据"); }else{ System.out.println("数据"+ arr[i] +"已经找到"); } } }
-