Java数组

基本数据类型

  • 整型(Integral Types):byte、short、int、long
  • 浮点型(Floating Point Types):float、double
  • 字符型(Character Types):char
  • 布尔型(Boolean Types):boolean
  • 空值类型(Void Type):void基本数据类型在内存中占用的空间大小是固定的,不能被改变。

引用数据类型

  • 类、数组、接口、枚举、注解、记录

一维数组中数据类型默认值

  • 整型(int)数组的默认值为0
  • 浮点型(float)数组的默认值为0.0
  • 字符型(char)数组的默认值为空字符('\u0000')

\u0000是一个Unicode转义字符,代表空字符。在Unicode编码中,\u0000的十进制表示为0,也被称作空字符或NULL字符。它在编程中通常用于表示一个无效或空的值。

  • 布尔型(boolean)数组的默认值为false(false是因为false在计算机中默认对应0,true对应1)
  • 双精度浮点型(double)数组的默认值为0.0

二维数组中数据类型默认值

数组的使用步骤

一维数组

复制代码
       // 一维数组
//      动态数组  定义,初始化
        int[] prices = new int[5];
//        静态数组
//      int[] prices = new int[] {1,2,3}
//        调用
        prices[0] = 1;
        prices[1] = 1;
        prices[2] = 8;
        prices[3] = 10;
        prices[4] = 5;
//        遍历数组
        for(int i = 0; i < prices.length;i++){
         System.out.println(prices[i]);
        }
一维数组内存解析

数组变量放在栈中,数组值放在堆中

不同数据类型数组

相同数据类型数组

二维数组

复制代码
//        二维数组
//        定义和初始化
//        动态数组
        int[][] arr = new  int[3][4];
//        静态数组
//       int[][] arr = new  int[][]{{1,2,3},{2,3},{9,8}};
//       调用
//       打印数组长度
        arr[1][2]=1;
        System.out.println(arr[0]);//打印其地址
        System.out.println(arr[1][2]);

        int[][] arr1 = new int[][]{{1,2},{2,3},{9,8}};
// 遍历数组
        int i,j;
        for(i = 0; i < arr1.length; i++ ){
            for (j = 0; j < arr1[i].length; j++ ){
                System.out.println(arr1[i][j]+"\t");
            }
            System.out.println(); // 在每行的结束添加一个新行,使得输出更清晰
        }

二维数组赋值方式

  1. 逐个元素赋值:

    int[][] arr = new int[3][4];
    arr[0][0] = 1;
    arr[0][1] = 2;
    arr[0][2] = 3;
    arr[0][3] = 4;
    arr[1][0] = 5;
    arr[1][1] = 6;
    arr[1][2] = 7;
    arr[1][3] = 8;
    arr[2][0] = 9;
    arr[2][1] = 10;
    arr[2][2] = 11;
    arr[2][3] = 12;

  2. 使用循环赋值:

    int[][] arr = new int[3][4];
    for (int i = 0; i < arr.length; i++) {
    for (int j = 0; j < arr[i].length; j++) {
    arr[i][j] = i * j; // 或者其他您需要的赋值方式
    }
    }

  3. 使用数组字面量赋值:

    int[][] arr = {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}};

二维数组内存解析

数组常见算法

数值型数组特征值统计

平均值、最大值、最小值、总和等

数组元素的反转

数组对称位置的元素互换。

数组的扩容与缩容
数组的元素查找

待学 对应视频70


上面所有方法都可以用Arrays工具类实现

Arrays工具类的使用

复制代码
    public static void main(String[] args) {
        int[] arr1 = new  int[]{12,23,24,9};
        int[] arr2 = new  int[]{12,23,24,9};
//  调用Arrays中的equals方法
        boolean isEquals = Arrays.equals(arr1,arr2);

        System.out.println(isEquals);
//    调用toString方法,打印数组元素
        System.out.println(Arrays.toString(arr1));

结语

我是南城余!欢迎关注我的博客!一同成长!

一名从事运维开发的worker,记录分享学习。

专注于AI,运维开发,windows Linux 系统领域的分享!

相关推荐
怕浪猫7 小时前
GEO 优化到底是什么?AI时代内容创作者必须懂的新技能
算法·面试·github
朝朝辞暮i8 小时前
C++ 第 23 课:class —— 开始真正进入面向对象
开发语言·c++·算法
Evand J8 小时前
【MATLAB例程】三维RRT+APF避障路径规划与到达角(AOA)定位算法|三维路径优化与定位仿真例程
算法·matlab·路径规划·代码·定位·rrt·aoa
leikooo9 小时前
用餐厅和盘子理解栈和堆
java·数据结构·链表·rust
小师兄吃牛肉9 小时前
C语言篇:宏
c语言·开发语言
郑同学的笔记9 小时前
【c++随笔28】strcmp 和 memcmp对比
开发语言·c++
言乐610 小时前
Python根据无法识别搜索词找出可能输入内容模型
开发语言·python·django·virtualenv·pygame
weixin_3077791310 小时前
有限产能智能排产与动态重排智能体:从需求解构到技术实现
开发语言·人工智能·算法·架构
Ivanqhz10 小时前
激活函数在 Transformer 中的作用及各种变体简述
java·linux·数据库·人工智能·深度学习
kakakahahahaha10 小时前
Windows C盘临时文件清理:%temp%、Windows Temp、Prefetch、Windows.old与hiberfil.sys处理指南
c语言·开发语言·windows