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 系统领域的分享!

相关推荐
董董灿是个攻城狮6 小时前
AI视觉连载8:传统 CV 之边缘检测
算法
怒放吧德德8 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆9 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
心之语歌12 小时前
基于注解+拦截器的API动态路由实现方案
java·后端
华仔啊13 小时前
Stream 代码越写越难看?JDFrame 让 Java 逻辑回归优雅
java·后端
ray_liang13 小时前
用六边形架构与整洁架构对比是伪命题?
java·架构
AI软著研究员13 小时前
程序员必看:软著不是“面子工程”,是代码的“法律保险”
算法
FunnySaltyFish13 小时前
什么?Compose 把 GapBuffer 换成了 LinkBuffer?
算法·kotlin·android jetpack
Ray Liang14 小时前
用六边形架构与整洁架构对比是伪命题?
java·python·c#·架构设计
颜酱14 小时前
理解二叉树最近公共祖先(LCA):从基础到变种解析
javascript·后端·算法