数组的定义
数组本质上就是让我们能够“批量”创建相同类型的变量,必须是相同类型。
创建数组
基本语法
//动态初始化
数据类型[] 数组名称 = new 数据类型[] { 初始化数据 };
//静态初始化
数据类型[] 数组名称 = { 初始化数据 };
int[] array1 = {1,2,3,4,5};
int[] array2 = new int[]{1,2,3,4,5};
int[] array3 = new int[5];//定义了一个数组
数组的使用
获取长度:
array.length
数组的遍历
通过循环来访问每一个值
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]);
}
int[] arr = {1,2,3};
//增强for循环 for-each
for(int x : arr){ //用变量x来接收数组arr的每一个值
System.out.println(x);
}
或者导入Arrays包
import java.util.Arrays;
再通过Arrays.toString(array) 通过字符串的形式来输出数组
System.out.println(Arrays.toString(array));
二分查找
public class BinarySearch {
public static int binarySearch(int[] array, int key){
if(array == null && array.length ==0){
return -1;
}
int left = 0;
int right = array.length-1;
while(left <= right){
int mid = (left + right) / 2;
if(key < array[mid]){
right = mid - 1;
} else if(key > array[mid]){
left = mid + 1;
} else {
return mid;
}
}
return -1;
}
public static void main(String[] args){
int[] array = {1,2,3,4,5,6,7,8,9};
System.out.println(binarySearch(array,5));
}
}
冒泡排序
import java.util.Arrays;
public class BubbleSort {
public static void bubbleSort(int[] array){
int flag = 1;
for(int i = 0; i < array.length - 1; i++){
// i 是趟数
for(int j = 0; j < array.length- 1 - i; j++){
if(array[j] > array[j + 1] ){
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
flag = -1;
}
}
if(flag == 1){
break;
}
}
}
public static void main(String[] args){
int[] array = {22,1,43,5,16,7,66};
bubbleSort(array);
System.out.println(Arrays.toString(array));
}
}
二维数组
基本语法:
数据类型[][] 数组名称 = new 数据类型[行数][列数]{初始化数据};
二维数组其实相当于一维数组中,每个元素都是一个一维数组