1、数组的简介

数组是最基本的数据结构,它是相同数据类型的元素的集合。组成数组的各个变量称为数组的分量,也称为数组的元素,数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。

2、Java数组的定义

Java数组定义有三种方法:

int[] array1 = new int[10];
//int[]为数组的类型,array1为数组名称,int[10]为开辟内存,其能够存放十个数组元素

int[] array2 = {1,2,3,4,5};

int[] array3 = new int[]{1,2,3,4,5};

3、Java数组的初始化

初始化数组有动态初始化和静态初始化两种。

动态初始化:在创建数组时,只定义数组中元素的个数,并未给里面的元素进行赋值。例如:

int [] array = new int[10];

静态初始化:在创建数组时不指定数据元素个数,而直接将数组里的数据内容进行赋值,编译器会自己判定数组有几个元素,例如:

当数组中的元素为动态初始化时,会有对应的默认值,如下所示:

byte,short,int,long类型定义的数组,元素默认值是0;
float、double类型定义的数组,元素默认值是0.0;
boolean类型定义的数组,元素默认值是false;
char类型定义的数组,元素默认值是'' ,即 \u0000;
String类型定义的数组,元素默认值是null。

4、Java数组的使用

数组在内存中是一块连续的内存空间,通过数组的下标进行访问,数组的下标是从0开始的,所以数组用下标访问最大能到数组长度-1。

public class Test 
{
    public static void main(String[] args) 
    {
        int[] array = {1,2,3,4,5};
        System.out.println(array[3]);
    }
}

越界则会报异常,如下所示:

public class Test 
{
    public static void main(String[] args) 
    {
        int[] array = {1,2,3,4,5};
        System.out.println(array[5]);
    }
}

5、Java数组的遍历

Java数组的遍历有两种方式,如下所示:

(1)for循环遍历数组

public class Test 
{
    public static void main(String[] args) 
    {
        int[] array = {1,2,3,4,5};
        for (int i = 0; i < array.length; i++) 
        {
            System.out.print(array[i]+" ");
        }
    }
}

(2)foreach遍历数组

public class Test 
{
    public static void main(String[] args) 
    {
        int[] array = {1,2,3,4,5};
        for (int x:array) 
        {
            System.out.print(x+" ");
        }
    }
}

6、Java数组的二分查找

二分查找是一种非常高效的查找方式,但是二分查找必须是有序数组。

import java.util.Arrays;
 
public class Test 
{
 
    public static void main(String[] args) 
    {
        int[] array = {1,2,3,4,5,6,7,8,9,10};
        int index = Arrays.binarySearch(array,4);
        System.out.println(index);
    }
}

7、Java数组的排序

我们可以使用工具类Arrays中的的sort方法对Java数组进行排序:

import java.util.Arrays;
 
public class Test {
    public static void main(String[] args) 
    {
        int[] array = {1,2,3,6,5,0,4,8,7,9};
        Arrays.sort(array);
        System.out.println(Arrays.toString(array));
    }
}

8、Java数组的反转

我们可以使用Collections.reverse()方法对Java数组进行反转。首先使用java.util.Arrays.asList(array) 将数组转换为列表,然后反转列表,如下所示:

public class Test 
{
    public static void main(String[] args) 
    {
        Integer [] arr = {10, 20, 30, 40, 50};
        reverse(arr);
    }
    static void reverse(Integer[] a) 
    {
        Collections.reverse(Arrays.asList(a));
        System.out.println(Arrays.asList(a));
    }
}

需要注意的是:Collections类的reverse()方法会修改原始集合,而不是创建一个新的反转后的集合。因此,在使用该方法时应注意备份原集合数据,以免造成数据丢失。

标签: none

添加新评论