首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >九、JavaSE进阶之【数组】。

九、JavaSE进阶之【数组】。

作者头像
百思不得小赵
发布于 2022-12-01 03:47:23
发布于 2022-12-01 03:47:23
21100
代码可运行
举报
文章被收录于专栏:小赵Java总结小赵Java总结
运行总次数:0
代码可运行

目录

第一章:基本概念

1.1基本性质

  1. 数组是同一种类型数据的集合;即能够存放多个相同类型的数据的容器
  2. Java中,数组是一种引用类型,存储在堆中,父类为Object,一旦被创建长度是不可变的,元素类型必须统一。
  1. 数组可以存储基本数据类型引用数据类型的数据
  2. 数组中如果存的是Java对象的话,实际存储的是对象的引用(内存地址)。
  3. 数组分类:一维、二维、多维……。
  4. 所有的数组对象都有length属性,用于获取长度。
  5. 数组在内存方面存储时,数组中的元素内存地址是连续的
  6. 所有数组都是以第一个元素内存地址作为整个数组内存地址
  7. 下标从0开始,最后一个元素下标为length-1.

2.1 数组的优缺点

优点:检查某个下表上元素时效率高。

为什么检查效率高?

  1. 每一个元素内存地址空间上是连续的
  2. 每个元素类型相同所占空间大小一样
  3. 知道了元素内存地址,占空间大小,下标,可以计算元素的位置。

缺点: 1.由于数组每个元素内存地址连续,随机增删改效率太低。 2.数组不能存储大数据量,因为数组空间上很难找到一块大的内存空间。

第二章:一维数组

1.1基本语法

初始化一维数组: 静态初始化:int[] arry1={1,100,200}; 动态初始化:int[] arrys=new int[5]; //初始化一个长度为5的int类型数组,每个元素值为0(默认). String[] arrys=new String[6]; //初始化一个长度为6的String类型的数组,每个元素默认值为:null

代码演示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int[] arr = new int[3];
arr[0] = 3; //给数组编号(角标)为0的空间中存放int类型的常量值3
System.out.println(arr[1]);//输出数组编号为1空间中的值。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Text{
    public static void main(String[] args) {
        //初始化一个静态类型的数组
        int[] arr1={2,5,8,9,6,};
        //访问第3个元素
        System.out.println(arr1[2]);
    }
}

一维数组的遍历:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Text{
    public static void main(String[] args) {
        //初始化一个静态类型的数组
        int[] arr1={2,5,8,9,6,};
        //遍历输出一维数组中的元素
        for (int i=0;i<arr1.length;i++){
            System.out.println(arr1[i]);
        }
    }
}

第三章:二维数组

1.1基本特性

  1. 二维数组是特殊的一维数组,二维数组中每个元素为一维数组。
  2. 二维数组初始化:

静态初始化: int[][] arry={{1,2,3},{1,2,3},{1,2,3}}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
int[][] arr=new int[2][3];
arr[0][0]=11;

动态初始化:int[][] arrys=new int[2][3]; //初始化一个两行三列的二维数组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Text{
    public static void main(String[] args) {
        //初始化一个静态类型的二维数组
        int[][] arr1={{1,2,3},{1,2,3},{2,3,1}};
        //输出第1行第3列的元素
        System.out.println(arr1[0][2]);
    }
}

二维数组遍历:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Text{
    public static void main(String[] args) {
        //初始化一个静态类型的二维数组
        int[][] arr1={{1,2,3},{1,2,3},{2,3,1}};
           //遍历输出二维数组中的元素
        for (int i=0;i<arr1.length;i++){
            for(int j=0;j<arr1[i].length;j++){
                System.out.print(arr1[i][j]);//第i个一维数组中第j个元素
            }
        }
    }
}

第四章:数组常见异常总结

1.1数组角标越界异常

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Demo10 {
    public static void main(String[] args) {
        int arr[] = new int[3];
        System.out.println(arr[3]);
    }
}

2.1数组空指针异常

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Demo10 {
    public static void main(String[] args) {
        int arr[] = new int[3];
        //System.out.println(arr[3]);
        arr = null;
        System.out.println(arr[3]);
    }
}

数组工具类:Arrys.sort();//排序 Arrys.binarySearch();//二分查找

第五章:简单练习

1.数组求和

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Demo01 {
    public static int getSum(int []nums){
        int res = 0;// 求和结果
        int length = nums.length;// 获取长度
        for (int i =0;i<length;i++){
            res += nums[i];
        }
        return res;
    }

    // 数据类型... 形式参数 可变长度参数 就是数组
   /* public static int getSum1(int... nums){
        int res = 0;// 求和结果
        int length = nums.length;// 获取长度
        for (int i =0;i<length;i++){
            res += nums[i];
        }
        return res;
    }*/

    public static void main(String[] args) {
        int nums[] = {23,17,40,20};
        int sum = getSum(nums);
        System.out.println("数组的求和结果:"+sum);
    }
}

2.求最值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class Demo02 {
    /**
     * 求数组最大值
     * @param nums
     * @return
     */
    public static int getMax(int nums[]){
        int max = nums[0];// 默认最大值为第一个元素
        for (int i = 1;i<nums.length;i++){// 遍历数组的每一位
            if (max<nums[i]){// 判断当前为是否比max大
                max = nums[i];// 用大值替换max值
            }
        }
        return max;
    }
    public static void main(String[] args) {
        int nums[] = {7,23,44,16,32,99,34,13};
        Arrays.sort(nums);
        //int max = getMaxIndex(nums);
        //System.out.println("最大值是:"+max);
        System.out.println(Arrays.toString(nums));
        System.out.println(nums[nums.length-1]);
    }
}

今天的分享就到这里啦!!~希望对大家有帮助的话多多支持下 ~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-06-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【day05】数组
程序员波特
2024/12/21
1430
【day05】数组
第四天 数组【悟空教程】
第04天 Java基础 第1章 数组 1.1 数组概念 软件的基本功能是处理数据,而在处理数据时,必须先进行数据持有,将数据持有之后,再对数据进行处理。我们将程序中可以临时存储数据的部分叫做容器。 Java当中具有持有数据功能的容器中,数组是最基本的,也是运算速度最快的。 1.2 数组的定义格式 数组是引用类型的一种,其使用方式与引用类型类似,均使用new关键字创建对象为变量赋值。 格式1:数据类型[] 数组名 = new 数据类型[元素个数或数组长度]; 格式2:数据类型 数组名[] = new 数据类
Java帮帮
2018/06/11
8460
Java 数组、排序和查找
# Java 数组、排序和查找 # 为什么需要数组 一个养鸡场有 6 只鸡,它们的体重分别是 3kg,5kg,1kg,3.4kg,2kg,50kg 。请问这六只鸡的总体重是多少?平 均体重是多少? 请
用户9615083
2022/12/25
2.1K0
Java 数组、排序和查找
【JavaSE学习】 Day3 数组
  本次文章讲述的是JavaSE数组的使用,讲述一维数组、二维数组创建和使用、常见数组操作和使用、Arrays工具类的使用、数组的常见异常。
小小程序员
2023/02/24
2290
【JavaSE学习】 Day3 数组
第81节:Java中的数组
本节介绍数组的基本概念,数据就是一种数据结构,可以用来存储多个数据,每个数组中可以存放相同类型的数据。比如,在学校,我们是一个班,这里的班级中每个同学都是这个班级数组中的元素,都是同样的类型为学生,对应的学号就是我们的索引,但是在现实中的学号一般都是从1开始的,而在Java中的数组索引是从0开始的。
达达前端
2019/07/03
9100
第81节:Java中的数组
《JavaSE-第六章》之容器数组
本章大家介绍一个存储相同数据类型的容器----数组,以及便于我们对数组操作的工具类Arrays类的使用。
用户10517932
2023/10/07
2320
《JavaSE-第六章》之容器数组
Java基础(六):数组
java.util.Arrays类即为操作数组的工具类,包含了用来操作数组(比如排序和搜索)的各种方法
Java微观世界
2025/01/21
800
Java基础(六):数组
Java基础知识及细节之二维数组
是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。
小炜同学
2022/08/20
2750
【 JavaSE 】 深入数组
目录 前言 一维数组 创建一维数组 一维数组的使用 数组作参数 认识 JVM 内存区域划分 数组做参数基本用法 理解引用类型 认识 null 数组作为方法的返回值 二维数组 二维数组的长度 二维数组的遍历 数组练习 ---- 前言 ---- 本章主要讲解: 一维数组的定义和使用 数组在内存的基本存储知识 二维数组的定义和使用 数组练习 一维数组 ---- 什么是数组: 数组本质上就是让我们能 "批量" 创建相同类型的变量(相同的类型) 注:特别是表示大量的数据,用数组非常便捷 创建一维数组 基本
用户9645905
2022/11/30
4270
【 JavaSE 】 深入数组
Java基础 (上卷)-数组
需求:现在需要统计某公司员工的工资情况,例如计算平均工资、找到最高工资等。假设该公司有80名员工,用前面所学的知识,程序首先需要声明80个变量来分别记住每位员工的工资,然后在进行操作,这样做会显得很麻烦。为了解决这种问题,Java就提供了数组供我们使用。
软件小生活
2021/08/16
3420
「JAVA」数组、多维数组,动态、静态初始化,数组JVM内存模型分析
所谓数组,是具有相同数据类型的若干变量或者数据按照一定排序规则组合起来的一种数据存储格式。数组中的数据称为数组元素,我们使用索引来标识数组元素在数组中的存储位置,索引从0开始,步长是1,其后的索引依次递增:
老夫编程说
2020/04/25
2.5K0
「JAVA」数组、多维数组,动态、静态初始化,数组JVM内存模型分析
Java数组、排序和查找
创建一个char 类型的26 个元素的数组,分别放置’A’-‘Z’。使用for 循环访问所有元素并打印出来。提示:char 类型数据运算’A’+2 -> ‘C’
timerring
2023/04/21
1.1K0
Java数组、排序和查找
【愚公系列】2021年12月 Java教学课程 21-二维数组
​ 已知两个整数变量a = 10,b = 20,使用程序实现这两个变量的数据交换 ​ 最终输出a = 20,b = 10;
愚公搬代码
2021/12/29
3040
【06】JAVASE-数组讲解【从零开始学JAVA】
Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。
用户4919348
2024/05/25
1920
【06】JAVASE-数组讲解【从零开始学JAVA】
5. 数组
(2)数组的元素类型:即创建的数组容器可以存储什么数据类型的数据​。元素的类型可以是任意的Java的数据类型。例如:int、String、Student等。
捞月亮的小北
2023/12/01
2460
5. 数组
二维数组的使用
package com.java; /* * 二维数组的使用 * 1.理解: * 对于二维数组的理解,我们可看成是以为数组又作为另外一个一维数组元素的存在。 * 从数组底层的运行机制来看,没有多维数组 * 2.二维数组 * (1)二维数组的声明和初始化 * (2)如何调用数组的指定位置的元素 * (3)如何获取数组的长度 * (4)如何遍历数组 * (5)数组元素的默认初始化值 * (6)数组的内存解析 */ public class ArrayTest2 { pub
用户8639654
2021/07/26
9860
完整的java数组操作应用知识汇总
数组是一种非常有用和常用的数据类型,存在于每种程序语言之中,java中的数组是一种最简单的复合数据类型,刚学习java数组的小白们大多都会听到一句这样的话:java是纯面向对象的语言,它的数组也是一个对象。所以很多人就按照一个对象的方式来使用数组,后来你会发现,将数组作为一个类来使用在实现上是多么的“不自然”。下面就来全面了解一下关于java中数组的知识。
三哥
2018/08/20
1.7K0
完整的java数组操作应用知识汇总
Java数组(Array)
数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
用户7886150
2021/04/08
4400
Java数组(Array)
数组(Array),是多个相同类型数据一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理。
全栈程序员站长
2022/09/08
6330
Java IDEA Debug&进制&二维数组
是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。
Lansonli
2021/10/09
7890
相关推荐
【day05】数组
更多 >
交个朋友
加入腾讯云官网粉丝站
蹲全网底价单品 享第一手活动信息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档