首页 > 编程语言 >Java中的数组

Java中的数组

时间:2024-04-15 23:34:54浏览次数:27  
标签:index Java String MAP 数组 Integer null

以二维数组 Integer[][] MAP = new Integer[100][2]为例
实际上定义了一个包含100个元素的数组,每个元素本身也是一个数组,这个两个子数组又会包含两个Integer。

那么在执行 MAP[index] == null 时,实际上是判断 MAP 数组中第 index 个位置的元素是否为 null由于初始化了 MAP 为 new Integer[100][2],这表明你已经为每一个 index 从0到99分配了一个长度为2的数组。因此,在这种初始化之后,MAP[index] 不会为 null —— 它总是指向一个长度为2的数组

而当我们检查MAP[index][0] == null 时,则是判断index处的第1个元素是否为null,此时是否为null呢?  是

在Java中,对于对象类型的数组(如 Integer 类型),数组的默认初始化值是 null。因此,尽管 MAP[index] 是一个非 null 的数组,MAP[index][0] 和 MAP[index][1] 默认都是 null

当我们使用基本数据类型(如 int)或者 String 类型来定义二维数组时,情况会有所不同。

基本数据类型 int[][] MAP = new int[100][2];:对于 int 类型的数组,数组的默认值是 0。所以当你检查 MAP[index] == 0 时,这实际上是在检查数组的第 index 个位置是否包含值 0(在这种情况下,它总是 false)。如果你检查 MAP[index][0] == 0,你是在检查 MAP[index] 指向的数组的第一个元素是否为 0。String 类型 String[][] MAP = new String[100][2];:

对于 String 类型的数组,数组的默认值是 null。当你检查 MAP[index] == null 时,你是在检查数组的第 index 个位置是否为 null

如果你检查 MAP[index][0] == null,你是在检查 MAP[index] 指向的数组的第一个元素是否为 null

标签:index,Java,String,MAP,数组,Integer,null
From: https://www.cnblogs.com/xxaxf/p/18137158

相关文章

  • java实现 给定一个地址经纬度,一组地址经纬度,找出在范围内的地址,和最接近的地址(单位:米)
    packagecom.example.demo10;importjava.util.ArrayList;importjava.util.List;/***java实现给定一个地址经纬度,一组地址经纬度,找出在范围内的地址,和最接近的地址**@authorlonglinji*@date2024/4/15*/publicclassGeoUtils{//地球半径,单位为公里......
  • 结对编程——Java实现四则运算
    任务要求请两位同学以结对编码(一个同学coding,另一个同学在旁边审核代码,之后再交换角色)的方式完成本次实验,并把程序、运算结果、博客体会等截屏发到其中一位同学的博客上,并在博客中体现另一位同学的学号(仅学号不体现姓名)。小学老师要每周给同学出300道四则运算练习题。–这个程......
  • java实现 给定一个地址经纬度,一组地址经纬度,找出在范围内的地址,和最接近的地址
    packagecom.example.demo10;importjava.util.ArrayList;importjava.util.List;/***java实现给定一个地址经纬度,一组地址经纬度,找出在范围内的地址,和最接近的地址**@authorlonglinji*@date2024/4/15*/publicclassGeoUtils{//地球半径,单位为公里......
  • JAVA语言学习-Day10、11、12
    参考教学视频:秦疆learnJava-JUC1.什么是JUCjava.util工具包、包、分类java.util.concurrentjava.util.concurrent.atomicjava.util.concurrent.locks2.线程和进程举例:开启一个Typora(进程),输入、自动保存(线程)进程:一个程序一个进程往往可以包含多个线程,至少包含一个线程:写......
  • Java进行excel的导入导出操作
    excel表格的导出导入在业务中经常会遇到,下面介绍hutool和easyExcel两种操作excel的工具测试的实体类通过mybatis-plus生成的,用于导出数据的实体类@Getter@Setter@TableName("device_info")@ApiModel(value="DeviceInfo对象",description="")publicclassDeviceInfo......
  • java连接ssmsSqlserver数据库 报错信息:com.microsoft.sqlserver.jdbc.SQLServerExce
    解决办法:将官网下载的驱动文件打开,找到如下路径,并复制,粘贴放到jdk的bin目录下......
  • java基础_05_流程控制
    1、用户交互Scanner(译:扫描器) 1\使用next方法接收,只接收空格以前的packageliuchengkongzhi;importjava.util.Scanner;publicclassScanner01{publicstaticvoidmain(String[]args){//创建一个扫描器对象,用于接收键盘数据ScannerSca......
  • Java使用javacv处理视频文件过程记录
    最近接到一个需求是将.mp4/.m4v文件体积进行压缩,我使用javacv中的FFmpegFrameGrabber、FFmpegFrameFilter、FFmpegFrameRecorder简单的实现视频帧的抓取、过滤、录制与输出。性能暂未验证。文章对这次的过程进行记录。1.jdk的选择mcr.microsoft.com/java/jdk:8u222-zulu-cento......
  • java中接口多个实现类,如何指定实现类,根据子类类型选择实现方法
    问题背景在Java代码中,经常会遇到一个接口有多个实现的情况。而这些实现类的参数又是不同的子类,这时候我们该如何选择正确的实现方法呢?解决方案我们可以通过判断参数的子类类型来选择正确的实现方法。具体实现可以使用Java中的instanceof关键字,它可以判断一个对象是否是某个类的......
  • Java并发编程实战读书笔记
    1.线程池模型    netty实战中讲到的线程池模型可以描述为:1.从线程池中选择一个空间的线程去执行任务,2.任务完成时,把线程归还给线程池。这个模型与连接池类似。    根据jdk源码的研究,具体的实现模型是,线程池ThreadPoolExecutor中有一个静态内部类Worker,使用装饰器模式扩......