大数据基础之JAVA数组

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 大数据基础之JAVA数组

1 数组简介
什么是数组

在java中储存多个相同类型数据的容器就是数组

数组的定义

public static void main(String[] args) {

    //动态初始化:
    //我们给出数组长度,系统初始化值
    //方法一:数组中存放数据的类型[] 数组名称 = new 数据类型[数组长度]; (推荐写法)
    int[] arr1 = new int[5]; // 推荐写法
    //方法二:数组中存放数据的类型 数组名称[] = new 数据类型[数据长度];
    int arr2[] = new int[5]; // 不推荐这样写,但是不错

    //静态初始化
    //我们给出值,系统判断长度
    //方法一:数组中存放数据的类型[] 数组名称 = new 数据类型[] {数据1, 数据2.....};
    int[] arr3 = new int[]{11, 22, 33, 44, 55};
    //方法二:数组中存放数据的类型[] 数组名称 = {数据1, 数据2 .....}; (推荐)
    int[] arr4 = {11, 22, 33, 44, 55};  //推荐写法

    // 基础数据类型,如果只定义不赋值,不能进行使用
    int a;
    // System.out.println(a);  // java: 可能尚未初始化变量a
    // 引用型数据,如果没有赋值,会自动赋一个默认值
    System.out.println(arr1); // [I@1b6d3586
    System.out.println(arr1[0]);  // 0

    //如果定义一个数组,是int类型, 动态初始化时,每一个元素都会附一个0;
    //如果定义一个数组,是double类型, 动态初始化时,每一个元素都会附一个0.0;
    double[] arrD = new double[5];
    System.out.println(arrD[0]);
    //如果定义一个数组,是boolean类型, 动态初始化时,每一个元素都会附一个false;
    boolean[] arrB = new boolean[5];
    System.out.println(arrB[0]);
    //如果定义一个数组,是String类型, 动态初始化时,每一个元素都会附一个null;
    String[] arrS = new String[5];
    System.out.println(arrS[0]);

}

数组的基本用法

package cn.itcast.demo07_array;
/*

数组中有索引,从左至右, 从0开始依次递增
arr : {11,22,33,44,55}
index: 0  1  2   3  4

使用数组中的元素  arr[index]
修改数组中的元素  arr[index] = value
获取数组中元素的个数, 或者说获取数组的长度:arr.length

*/
public class Demo02 {

public static void main(String[] args) {
    //1.定义一个长度为5的int类型的数组.
    int[] arr = new int[5];
    //2.打印数组中的第3个元素.
    System.out.println(arr[2]);
    //3.设置数组中的第一个元素值为11.
    arr[0] = 11;
    //4.获取数组中的第一个元素值, 并将其赋值给变量a, 然后打印.
    int a = arr[0];
    System.out.println(a);
    //5.打印数组的长度. 强调:length中没有括号,证明其实一个属性,不是方法
    System.out.println(arr.length);
}

}
数组的内存图解

创建出来的对象(new)都储存在堆区

方法和变量都储存在栈区

new时会先去堆区开辟空间再给默认值

数组在开辟空间时都会先给默认值,如果是静态初始化,会根据长度开辟空间赋默认值,然后再根据索引修改为我们自定义的值

数组的常见异常

数组中常出现的两个小问题:
数组越界ArrayIndexOutOfBoundsException:获取元素所使用的下标,在数组中不存在
空指针异常(不仅是数组,所有的引用类型都可能出现)NullPointerException: 因为应用类型的值为null 所以所在空间内的数据无法提取
数组的常见操作

public class Demo05 {

public static void main(String[] args) {
    int[] arr = {5, 15, 2000, 10000, 100, 4000};
    // 思路:
    // 1.创建一个变量储存颜值最大值
    int yanMax = arr[0];
    // 2.循环遍历arr 获取每一个元素 与最大值进行比较
    for (int i = 1; i < arr.length; i++) {
        // 3. 如果比最大值大就将其替换
        if (arr[i] > yanMax) {
            yanMax = arr[i];
        }
        // 4. 如果比最大值小,开启下一次循环
    }
    System.out.println("颜值最大值为:" + yanMax);
}

}

public static void main(String[] args) {

int[] arr = {11, 22, 33, 44, 55};
//1.新建一个与arr长度相同的空数组
int[] arrNew = new  int[arr.length];
//2. 遍历arr数组
for (int i = 0; i < arr.length; i++) {
    System.out.println(arr[i]);
    /*
    i = 0  要给 第 4个元素赋值
    i = 1 要给第3个元素赋值
    .....  此时被赋值的数组的下标为arr.length - i - 1
     */
    //3. 将每一个数组中的元素,按倒序赋值给新数组
    arrNew[arr.length - i - 1] = arr[i];
}
System.out.println(arrNew); // [I@1b6d3586
System.out.println(Arrays.toString(arrNew)); // [55, 44, 33, 22, 11]

}

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
3月前
|
Java
Java 数组学习笔记
本文整理Java数组常用操作:遍历、求和、查找、最值及二维数组行求和等典型练习,涵盖静态初始化、元素翻倍、去极值求平均等实例,帮助掌握数组基础与应用。
|
4月前
|
存储 缓存 Java
Java数组全解析:一维、多维与内存模型
本文深入解析Java数组的内存布局与操作技巧,涵盖一维及多维数组的声明、初始化、内存模型,以及数组常见陷阱和性能优化。通过图文结合的方式帮助开发者彻底理解数组本质,并提供Arrays工具类的实用方法与面试高频问题解析,助你掌握数组核心知识,避免常见错误。
|
4月前
|
存储 供应链 数据可视化
Java 大视界 -- 基于 Java 的大数据可视化在企业供应链风险预警与决策支持中的应用(204)
本篇文章探讨了基于 Java 的大数据可视化技术在企业供应链风险预警与决策支持中的深度应用。文章系统介绍了从数据采集、存储、处理到可视化呈现的完整技术方案,结合供应链风险预警与决策支持的实际案例,展示了 Java 大数据技术如何助力企业实现高效、智能的供应链管理。
|
4月前
|
存储 SQL Java
Java 大视界 -- Java 大数据在智能医疗手术风险评估与术前方案制定中的应用探索(203)
本文探讨了Java大数据技术在智能医疗手术风险评估与术前方案制定中的创新应用。通过多源数据整合、智能分析模型构建及知识图谱技术,提升手术风险预测准确性与术前方案制定效率,助力医疗决策智能化,推动精准医疗发展。
|
5月前
|
机器学习/深度学习 Java 大数据
Java 大视界 -- Java 大数据在智能政务公共资源交易数据分析与监管中的应用(202)
本篇文章深入探讨了 Java 大数据在智能政务公共资源交易监管中的创新应用。通过构建高效的数据采集、智能分析与可视化决策系统,Java 大数据技术成功破解了传统监管中的数据孤岛、效率低下和监管滞后等难题,为公共资源交易打造了“智慧卫士”,助力政务监管迈向智能化、精准化新时代。
|
5月前
|
数据采集 机器学习/深度学习 Java
Java 大视界 -- Java 大数据在智能体育赛事运动员体能监测与训练计划调整中的应用(200)
本篇文章聚焦 Java 大数据在智能体育赛事中对运动员体能监测与训练计划的智能化应用。通过构建实时数据采集与分析系统,结合机器学习模型,实现对运动员体能状态的精准评估与训练方案的动态优化,推动体育训练迈向科学化、个性化新高度。
|
5月前
|
机器学习/深度学习 分布式计算 Java
Java 大视界 -- Java 大数据机器学习模型在遥感图像土地利用分类中的优化与应用(199)
本文探讨了Java大数据与机器学习模型在遥感图像土地利用分类中的优化与应用。面对传统方法效率低、精度差的问题,结合Hadoop、Spark与深度学习框架,实现了高效、精准的分类。通过实际案例展示了Java在数据处理、模型融合与参数调优中的强大能力,推动遥感图像分类迈向新高度。
|
SQL JSON 分布式计算
23篇大数据系列(一)java基础知识全集(下)(2万字干货,建议收藏)
23篇大数据系列(一)java基础知识全集(下)(2万字干货,建议收藏)
23篇大数据系列(一)java基础知识全集(下)(2万字干货,建议收藏)
|
SQL JSON 分布式计算
23篇大数据系列(一)java基础知识全集(上)(2万字干货,建议收藏)
23篇大数据系列(一)java基础知识全集(2万字干货,建议收藏)
23篇大数据系列(一)java基础知识全集(上)(2万字干货,建议收藏)

热门文章

最新文章