Java(十三)数组

简介: Java(十三)数组

数组,其实他就是一个容器,方便对数据管理和操作。


一:数组容器的特点


1:数组容器一旦初始化,长度就固定了,不能再改变


2:数组容器中既可以存储基本数据类型,也可以存储引用数据类型


3:一个数组容器中的所有元素(就是容器中装的东西)的数据类型必须是相同的


 

二:数组的定义格式


1:格式一:


元素的数据类型[] 数组的名字 = new元素的数据类型[元素的个数(数组的长度)]:


// 第一种数组定义格式
int[] arrOne = new int[5];

 

2:格式二:


元素的数据类型[] 数组的名字 = new 元素的数据类型{元素1,元素2,····};


// 第二种定义数组的格式
int[] arr_two = new int[]{12,23,43};

 

3:格式三:(属于格式二的简化写法)


元素的数据类型[] 数组的名字 = {元素1,元素2,···.}


// 第三种定义数组的格式
int[] arr = {12,32,54,23};

 

三:数组索引(存取数据)


我们存放在数组中的数据都是有编号的,我们将这个编号称之为索引。索引下标从0开始,数组长度减一结束。


那么,我们既可以通过这个索引存数据,也可以通过这个索引取数据。


下面我们来测试一下:



         


上面的程序演示了如何向数组中存数据


/**
     * @name 主方法
     * @param args
     */
    public static void main(String[] args)
    {
        // 定义长度为3的数组
        int[] arrOne = new int[3];
        arrOne[0] = 1;
        arrOne[1] = 2;
        arrOne[2] = 3;
        System.out.println("数组中的第一个元素:"+arrOne[0]);
        System.out.println("数组中的第二个元素:"+arrOne[1]);
        System.out.println("数组中的第三个元素:"+arrOne[2]);
        // arrOne[3] = 4;
        System.out.println("程序执行结束了");
    }


输出:


数组中的第一个元素:1


数组中的第二个元素:2


数组中的第三个元素:3


程序执行结束了


上面的程序为我们演示了如何从数组中取数据。


 

四:使用for循环遍历数组


这部分内容在我们之前学习for循环的时候,就已经提前尝试过了,这里把上篇的例子再写一下:


/**
     * @name 主方法
     * @param args
     */
    public static void main(String[] args)
    {
        // 定义长度为3的数组
        int[] arrOne = new int[3];
        arrOne[0] = 1;
        arrOne[1] = 2;
        arrOne[2] = 3;
        // arrOne[3] = 4;
        for(int i = 0; i < arrOne.length;i++)
        {
            System.out.println("数组中的第"+i+"个元素:"+arrOne[i]);
        }
        System.out.println("程序执行结束了");
    }

输出:


数组中的第0个元素:1


数组中的第1个元素:2


数组中的第2个元素:3


程序执行结束了

 


五:数组常见错误:


1:指针越界异常:ArrayIndexOutOfBoundsException


// 定义长度为3的数组
        int[] arrOne = new int[3];
        arrOne[0] = 1;
        arrOne[1] = 2;
        arrOne[2] = 3;
        arrOne[3] = 4;

上边这段代码就会报指针越界异常。

 


2:空指针异常:NullPointerException

arrOne = null;
        System.out.println("数组中的第1元素:"+arrOne[0]);

上边这段代码就会报 空指针异常

 


Java中 null只能给引用数据类型赋值,数组是一个引用数据类型。

 


六:数组的常见操作


1:获取最值(最大、最小)


(1):操作值

// 定义一个数组
        int[] arrOne = {11,4,6,7,15,9};
        // ======================================================
        // 操作值
        int max = 0;
        for(int i = 0; i < arrOne.length;i++ )
        {
            if(max < arrOne[i])
            {
                max = arrOne[i];
            }
        }
        System.out.println("数组的最大的元素是:"+max);

输出:数组的最大的元素是:15

 


(2):操作索引

// 定义一个数组
        int[] arrOne = {11,4,6,7,15,9};
        // ======================================================
        // 操作索引
        int index = 0;
        for(int i = 0; i < arrOne.length;i++ )
        {
            if(arrOne[index] < arrOne[i])
            {
                index = i;
            }
        }
        System.out.println("数组的最大的元素是:"+arrOne[index]);

输出:数组的最大的元素是:15

 


2:在数组中查找对应的元素

public static void main(String[] args) {
        // 基本查找
        int[] arr = {11,21,32,45,89};
        // 使用控制台输入输出类
        Scanner sc = new Scanner(System.in);
        System.out.println("请您输入一个数字:");
        int num = sc.nextInt();
        int index = -1;
        for(int i = 0;i < arr.length;i++)
        {
            if(num == arr[i])
            {
                index = i;
                break;
            }
        }
        if(index != -1)
        {
            System.out.println("与"+num+"相等数字索引是:"+index);
        }
        else
        {
            System.out.println("没有找到对应的数字!");
        }
    }

输出:


请您输入一个数字:


32


与32相等数字索引是:2

 


3:数组排序


(1):选择排序

public static void main(String[] args) {
        int[] arr = {11,52,14,25,85,65,21,24,99};
        // 选择排序
        for(int i = 0;i < arr.length - 1;i++)
        {
            for(int j = i + 1; j < arr.length; j++)
            {
                if(arr[i] > arr[j])
                {
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
        // 输出排序之后的数组
        for(int i = 0; i < arr.length;i++)
        {
            System.out.println(arr[i]);
        }
    }

输出:11


14


21


24


25


52


65


85


99


 

(2):冒泡排序


public static void main(String[] args) {
        int[] arr = {11,52,14,25,85,65,21,24,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;
                }
            }
        }
        // 输出排序之后的数组
        for(int i = 0; i < arr.length;i++)
        {
            System.out.println(arr[i]);
        }
    }

输出:


11


14


21


24


25


52


65


85


99

 


七:多维数组


数组元素为一维数组的数组我们称之为二维数组。


1:定义方式:


// 这个二维数组中有三个一维数组,每个一维数组中有两个元素
int[][] arrOne = new int[3][2];
// 这个二维数组中有三个一维数组,每个一维数组中有多个元素(不确定)
int[][] arrTwo = new int[3][];
// 这个直接就赋值了
int[][] arrThree = {{1,23},{52,96},{2,56,36,45}};

 


2:二维数组遍历

// 这个直接就赋值了
        int[][] arrThree = {{1,23},{52,96},{2,56,36,45}};
        for(int i = 0;i < arrThree.length;i++)
        {
            for(int j = 0;j < arrThree[i].length;j++)
            {
                System.out.println(arrThree[i][j]);
            }
        }

输出:


1


23


52


96


2


56


36


45

 


以上大概就是关于java数组的基本使用,有好的建议,请在下方输入你的评论。


目录
相关文章
|
2月前
|
存储 缓存 算法
Java 数组
【10月更文挑战第19天】Java 数组是一种非常实用的数据结构,它为我们提供了一种简单而有效的方式来存储和管理数据。通过合理地使用数组,我们能够提高程序的运行效率和代码的可读性。更加深入地了解和掌握 Java 数组的特性和应用,为我们的编程之旅增添更多的精彩。
33 4
|
2月前
|
存储 缓存 算法
提高 Java 数组性能的方法
【10月更文挑战第19天】深入探讨了提高 Java 数组性能的多种方法。通过合理运用这些策略,我们可以在处理数组时获得更好的性能表现,提升程序的运行效率。
40 2
|
2月前
|
存储 Java
Java“(array) <X> Not Initialized” (数组未初始化)错误解决
在Java中,遇到“(array) &lt;X&gt; Not Initialized”(数组未初始化)错误时,表示数组变量已被声明但尚未初始化。解决方法是在使用数组之前,通过指定数组的大小和类型来初始化数组,例如:`int[] arr = new int[5];` 或 `String[] strArr = new String[10];`。
95 2
|
2月前
|
存储 Java
什么是带有示例的 Java 中的交错数组?
什么是带有示例的 Java 中的交错数组?
53 9
|
2月前
|
Java
Java数组动态扩容和动态缩减
Java数组动态扩容和动态缩减
26 3
|
2月前
|
存储 算法 Java
Java一分钟之-数组的创建与遍历
数组作为Java中存储和操作一组相同类型数据的基本结构,其创建和遍历是编程基础中的基础。通过不同的创建方式,可以根据实际需求灵活地初始化数组。而选择合适的遍历方法,则可以提高代码的可读性和效率。掌握这些基本技能,对于深入学习Java乃至其他编程语言的数据结构和算法都是至关重要的。
31 6
|
2月前
|
存储 Java 程序员
【一步一步了解Java系列】:何为数组,何为引用类型
【一步一步了解Java系列】:何为数组,何为引用类型
34 1
|
2月前
|
存储 XML Java
如何在 Java 中将常见文档转换为 PNG 图像数组
如何在 Java 中将常见文档转换为 PNG 图像数组
18 1
|
2月前
|
存储 安全 Java
Java数组(Arrays)详解
Java 中的数组是一种用于存储固定数量同类型数据的高效数据结构,支持连续内存存储和随机访问。数组可以声明并初始化,通过索引访问和修改元素,获取长度,使用循环遍历,支持多维形式,并可通过 `Arrays` 类的方法进行复制和排序。数组具有固定大小和类型安全的特点,但需注意越界等问题。灵活运用数组能显著提升编程效率。
125 9
|
3月前
|
存储 Java 数据处理
Java 数组的高级用法
在 Java 中,数组不仅可以存储同类型的数据,还支持多种高级用法,如多维数组(常用于矩阵)、动态创建数组、克隆数组、使用 `java.util.Arrays` 进行排序和搜索、与集合相互转换、增强 for 循环遍历、匿名数组传递以及利用 `Arrays.equals()` 比较数组内容。这些技巧能提升代码的灵活性和可读性,适用于更复杂的数据处理场景。
42 10