当前位置: 首页 > article >正文

5.Java 数组(一维数组、二维数组、数组实例实操)

一、数组

1、基本介绍
【数据类型】[] 【数组名】 = new 【数据类型】[【长度】];
【数据类型】[] 【数组名】 = {【元素 1, 【元素 2...};
【数据类型】[] 【数组名】 = new 【数据类型】[]{【元素 1, 【元素 2...};
  1. 数组中的元素可以是任何数据元素,包括基本类型和引用类型,但是不能混用

  2. 数组创建后,如果没有赋值,有默认值

  3. 使用数组步骤:声明数组并开辟空间 -> 给数组赋值 -> 使用数组

  4. 数组的下标是从 0 开始的

  5. 数组的下标必须在指定范围内,否则报下标越界异常

  6. 数组属于引用数据类型(对象)

2、注意事项
  • 数组赋值机制:数组在默认情况下是引用赋值,赋的值是地址

二、二维数组

int[][] arr = {}; // 推荐
int[] arr[] = {};
int arr[][] = {};
  • 二维数组实际上由多个一维数组组成,它的各个一维数组的长度可以相同,也可以各不相同

三、实例实操

1、冒泡排序
  • BubbleSortTest.java
package com.my.test;

public class BubbleSortTest {
    public static void main(String[] args) {
        int[] arr = {13, 5, 45, 35, 52};

        // 打印原数组
        for(int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "  ");
        }
        System.out.println();

        // 定义中转变量
        int temp = 0;

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

        // 打印冒泡排序后的数组
        for(int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "  ");
        }
    }
}
2、数组扩容
  • ArrayExpandTest.java
package com.my.test;

public class ArrayExpandTest {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        int[] newArr = new int[arr.length + 1];

        // 将 arr 中的数据存入 newArr
        for (int i = 0; i < arr.length; i++) {
            newArr[i] = arr[i];
        }

        // 存入扩容的数据
        newArr[arr.length] = 4;

        // 让 arr 的地址指向 newArr 的地址
        arr = newArr;

        // 打印扩容后的数组
        for(int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "  ");
        }
    }
}
3、顺序查找
  • SequentialSearchTest.java
package com.my.test;

public class SequentialSearchTest {
    public static void main(String[] args) {
        String[] arr = {"东", "西", "南", "北"};

        // 查找元素的下标变量,默认为 -1
        int index = -1;

        // 查找的元素
        String target = "西";

        // 开始顺序查找
        for(int i = 0; i < arr.length; i++) {
            if (target.equals(arr[i])) {
                index = i;
                break;
            }
        }

        // 判断是否查找到
        if (index != -1) {
            System.out.println("恭喜你找到了!");
            System.out.println("目标元素:" + target + ",下标:" + index);
        } else {
            System.out.println("该目标元素不存在!");
        }
    }
}
4、返回数组
  • 注意返回数组的定义格式
package com.my.test;

import java.util.Arrays;

public class GetArrayTest {
    public static void main(String[] args) {
        int[] array1 = getArray1();
        int[] array2 = getArray2();
        System.out.println(Arrays.toString(array1));
        System.out.println(Arrays.toString(array2));
    }

    public static int[] getArray1() {
        return new int[]{ 1, 2, 3 };
    }

    public static int[] getArray2() {
        int[] res = { 1, 2, 3 };
        return res;
    }
}
  • 错误的定义格式
public static int[] getArray3() {
    return { 1, 2, 3 };
}

http://www.kler.cn/a/382413.html

相关文章:

  • 国际版JAVA同城打车源码同城服务线下结账系统源码适配PAD支持Android+IOS+H5
  • 计算机网络——网络层导论
  • buu PWN5
  • 【刷题】优选算法
  • Java学习教程,从入门到精通,Java对象和类语法知识点(20)
  • Docker安装MongoDB详解(mongo.latest)
  • ubuntu20安装opencv3.2记录
  • 洛谷P1090 [NOIP2004 提高组] 合并果子
  • Halcon 从XML中读取配置参数
  • 系统思考—深层结构
  • 《Ooga》进不去游戏解决方法
  • Java基础-组件及事件处理(下)
  • C语言程序的机器表示(逆向+函数调用栈详解版)
  • 情怀系列国际版棋牌完整源码具备强大的多语言扩展功能,涵盖了900多款子游戏,专为全球市场的游戏开发和运营设计。
  • 关于SwitchCase中变量定义及使用变量的一些注意事项参数传递参数时不能实现多态动态绑定的问题c++语法
  • 基于C#实现Windows后台窗口操作与图像处理技术分析
  • 【Linux】从零开始使用多路转接IO --- select
  • 时间段比较与 SQL 实现:交集、并集与补集
  • 盘点10款录音转文字工具,帮你开启高效记录。
  • docker 常用方法
  • qt QColorDialog详解
  • 数组逆序重存放
  • 【无人机设计与控制】改进无人机三维路径规划(蜣螂优化算法)Matlab程序
  • 前端react面试基础知识(II)
  • 【算法】Floyd多源最短路径算法
  • 【Linux】用户权限管理:创建受限用户并配置特定目录访问权限