Java数组之进阶篇

学习Demo

在这里插入图片描述

码上行动

代码如下(示例):

package array;

/**
 * 数组进阶篇
 */
public class ArrayDemo2 {

    public static void main(String[] args) {

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

        //For-Each
        /*for (int array : arrays) {
            System.out.println(array);
        }*/

        //打印数组元素
        //printArray(arrays);

        //反转数组-调用数组反转方法返回一个结果
        int[] reverse = reverse(arrays);

        //输出反转后的数组
        printArray(reverse);

    }

    //反转数组
    public static int[] reverse(int[] arrays){

        int[] result = new int[arrays.length];

        /*
        反转的操作:
            i 作为原数组的下标  初始为0    依次递加
            j 作为反转后数组的下标    初始为数组长度-1   依次递减
         */
        for (int i = 0, j = result.length - 1; i < arrays.length; i++, j--) {
            result[j] = arrays[i];
        }
        return result; //数组作为返回值
    }

    //打印数组元素
    public static void printArray(int[] arrays){
        for (int i = 0; i < arrays.length; i++) {
            System.out.print(arrays[i] + " ");
        }
    }


}
### Java 数组高级用法教程 #### 三维数组及其操作 多维数组可以扩展到三个维度甚至更多。对于三维数组而言,其声明方式如下所示: ```java int[][][] threeDimArray = new int[height][width][depth]; ``` 这种结构非常适合表示诸如立方体网格之类的数据模型[^2]。 #### 动态调整大小的二维数组列表 当面对不确定尺寸需求的情况时,`ArrayList<int[]>` 或 `List<List<Integer>>` 可提供更灵活的选择。下面是一个简单的例子展示如何构建动态变化的二维整数列表: ```java import java.util.ArrayList; import java.util.List; public class DynamicTwoDArray { public static void main(String[] args){ List<List<Integer>> dynamicMatrix = new ArrayList<>(); // 添加新行并填充数值 for (int row=0;row<5;++row){ List<Integer> newRow=new ArrayList<>(); for (int col=0;col<=row;++col){ newRow.add(col); } dynamicMatrix.add(newRow); } // 打印结果 for(List<Integer> line : dynamicMatrix){ System.out.println(line.toString()); } } } ``` 此代码片段展示了如何创建一个每行长度不同的三角形矩阵,并将其打印出来。 #### 使用递归来处理一维或多维数组中的元素 通过定义适当的基础条件和递归逻辑,可以在不依赖循环的情况下遍历整个数组树状结构。这里给出一个计算给定范围内所有自然数之和的例子作为示范: ```java private static int getSum(int n) { if(n == 1){ return 1; } else{ return n + getSum(n - 1); } } ``` 上述函数利用了自调用来累加从当前参数值直到1为止的所有正整数[^3]。 #### 利用Arrays类实现复杂功能 Java标准库中包含了名为`java.util.Arrays`的强大工具集,可用于执行多种实用的任务,比如快速排序、二分查找等。以下是几个常用的方法实例: - **排序**:对指定范围内的元素按照升序排列。 ```java import java.util.Arrays; Integer[] array={7,6,5,4,3,2,1}; Arrays.sort(array); ``` - **二分查找**:在一个已经排好序的一维数组里高效定位特定目标的位置(如果存在的话)。注意,在使用前需先确保待查序列有序。 ```java int index = Arrays.binarySearch(sortedArray,targetValue); boolean found=(index>=0); ``` - **深复制**:创建一个新的对象副本而不是仅仅共享同一个内存地址指向的内容。 ```java Object cloneDeeply = Arrays.copyOf(originalObject,lengthOfCopy); ``` 这些特性使得编写简洁而高效的程序变得更加容易[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无明之徒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值