其他分享
首页 > 其他分享> > 数组

数组

作者:互联网

数组

一、一维数组的使用

int[] arr1 = new int[3];
double arr2[] = { 1, 2, 3 };
char arr3[] = new char[] { 'a', 'b', 'c' };	// 不能指明长度
// 遍历数组
for (int i = 0; i < arr3.length; i++) {
    System.out.println(arr3[i]);
}

for (double i : arr2) {
    System.out.println(i);
}

在java中,变量未经初始化就使用其值会报错,数组会在创建时初始化为默认值。

数组元素类型 元素默认初始值
整数 0
小数 0.0
char 0或'\u0000'(表现为空)
boolean false
引用类型 null

二、二维数组的使用

int arr1[][] = new int[][]{{1, 2}, {3, 4, 5}, {6, 7}};
int arr2[][] = new int[3][2];
int arr3[][] = new int[2][];
arr3[0] = new int[2];
arr3[1] = new int[3];

for (int[] i : arr3) {
    for (int j : i) {
        System.out.println(j);
    }
}

三、反转数组

for (int i = 0; i < arr.length / 2; i++) {
    String temp = arr[i];
    arr[i] = arr[arr.length - 1 - i];
    arr[arr.length - 1 - i] = temp;
}
for (int i = 0, j = arr.length - 1; i < j; i++, j--) {
    String temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
}

四、二分查找

int[] array = new int[]{ 1, 3, 7, 19, 33, 41, 56, 72, 81, 99 };

int dest = 0;

int head = 0;
int end = array.length - 1;

boolean flag = true;

while (head <= end) {
    int middle = (head + end) / 2;

    if (array[middle] == dest) {
        System.out.println("找到,下标为:" + middle);
        flag = false;
        break;
    } else if (array[middle] > dest) {
        end = middle - 1;
    } else {
        head = middle + 1;
    }
}

if (flag) {
    System.out.println("未找到!");
}

五、冒泡排序

int[] arr = new int[]{43,32,76,-98,0,64,33,-21,32,99};

//冒泡排序
for(int i = 0;i < arr.length - 1;i++){
    for(int j = 0;j < arr.length - 1 - i;j++){
        if(arr[j] > arr[j + 1]){
            int temp = arr[j];
            arr[j] = arr[j + 1];
            arr[j + 1] = temp;
        }
    }
}

六、Arrays工具类

// 比较两个数组是否相等
boolean result = Arrays.equals(arr1, arr2);

// 填充数组
Arrays.fill(arr3, 10);	// 数组所有元素都填充成10

// 将数组转换成字符串
Arrays.toString(arr4);

// 数组排序
Arrays.sort(arr5);

// 二分查找
Arrays.binarySearch(arr6, 8);

标签:arr,int,length,arr3,数组,new
来源: https://www.cnblogs.com/ching-fun/p/16067894.html