当前位置: 首页 > news >正文

Java数组1

文章目录

  • 1. 数组的基本概念
    • 1.1 什么是数组
    • 1.2 数组的创建于初始化
      • 1.2.1 数组的创建
      • 1.2.2数组的初始化
  • 1.3 数组的使用
    • 1.3.1 数组中元素的访问
    • 1.3.2 数组中元素的遍历

1. 数组的基本概念

1.1 什么是数组

在Java中,数组用于存储相同类型的多个元素,即数组可以理解为是相同类型元素的集合。例如

在这里插入图片描述
这就是一个整型数组,包含5个整形类型元素的数组,从上图我们可以总结数组的特点:

数组的特点

  1. 连续的内存
  2. 存储得是相同数据类型的数据集合

那么我们应如何创建数组呢?

1.2 数组的创建于初始化

1.2.1 数组的创建

T[] 数组名 = new T[N];

T:表示数组中存放元素的类型
T[]:表示数组的类型
N:表示数组的长度

例如

int[] array1 = new int[10];
double array2 = new double[10];
String[] array3 = new String[10]; 

1.2.2数组的初始化

数组的初始化主要分为动态初始化以及静态初始化

** 1. 动态初始化:在创建数组时,直接指定数组中元素的个数 **

int[] array2 = new int[10];

** 2. 静态初始化:在创建数组时不直接指定数据元素个数,而是将具体的数据内容进行指定**

int[] array1 = new int[]{1,2,3,4,5};

也可以省略new int[ ] ,即

int[] array1 = {1,2,3,4,5};

注意

  • 静态初始化虽然没有指定数组的长度,但编译器在编译时会根据{}中元素个数来确定数组的长度。
  • 静态初始化时, {}中数据类型必须与[]前数据类型一致。
  • 大多数宝子们是先学习的C语言,所以创建数组时的格式为
int array4[] = {1,2,3,4,5};

在Java中可以按照C语言格式来创建并初始化数组,但是不推荐。

不准用!!!使用Java语言时用C语言格式,显得像个外行
在这里插入图片描述

  • 如果没有对数组进行初始化,数组中元素有其默认值
  1. 如果数组中存储元素类型为基类类型,默认值为基类类型对应的默认值,比如:
    |类型|默认值 |
    |–|–|
    | byte | 0 |
    | short | 0 |
    | int | 0 |
    | long | 0 |
    | float | 0.0f |
    | double | 0.0 |
    | char | /u0000 |
    | boolean | false |

  2. 如果数组中存储元素类型为引用类型,默认值为null

1.3 数组的使用

在这里插入图片描述
手跟个残废似的,就是画不好
在这里插入图片描述

如图,上述是一个可以存储五位整型的整型数组,下标是从0开始标记数据的位置。

1.3.1 数组中元素的访问

**数组在内存中是一段连续的空间,下标都是从0开始的,依次递增,数组可以通过
下标访问其任意位置的元素。**例如上述数组

int[] array = new int[]{1,2,3,4,5};System.out.println(array[0]);System.out.println(array[1]);System.out.println(array[2]);System.out.println(array[3]);System.out.println(array[4]);

在这里插入图片描述
同理,我们也可以通过这种方式对某个元素进行修改。

注意
下标从0开始,介于[0, N)之间不包含N,N为元素个数,不能越界,否则会报出下标越界异常。例如

在这里插入图片描述

1.3.2 数组中元素的遍历

所谓 “遍历” 是指将数组中的所有元素都访问一遍, 即打印。例如

int[] array = new int[]{1,2,3,4,5};
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
System.out.println(array[4]);

上述代码虽然可以实现将数组中的元素遍历,但是如果这个数组中有一百个元素,难道我们要一行一行打印吗?

其实我们可以借助前面学到的循环来遍历数组,例如

int[] array = new int[]{1,2,3,4,5};
for(int i = 0;i < 5;i++){System.out.println(array[i]);
}

但是我们运用词循环的前提是知道该数组的长度,当我们不知道数组的长度时,可以通过 数组对象.length 来获取数组的长度,例如

int[] array = new int[]{1,2,3,4,5};
for(int i = 0;i < array.length;i++){System.out.println(array[i]);
}

也可运用其他循环方式,比如while ,for each等等。

剩下的明天吧,嘻嘻
在这里插入图片描述

明天不更新就击毙我自己
在这里插入图片描述

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 数据库篇--八股文学习第十七天| 什么是慢查询?原因是什么?可以怎么优化?;undo log、redo log、binlog 有什么用?
  • 笔记:简单介绍WPF中RenderTransform,LayoutTransform, VisualTransform区别
  • 知识改变命运:Java 语言 【可变参数】
  • 【竞品分析】案例分析:直播类竞品分析,理解什么是竞品。
  • 怎样在 SQL 中创建视图(VIEW),以及视图的作用和优势是什么?
  • 【递归 + 记忆化搜索优化】力扣494. 目标和
  • Linux小组件:makefile
  • 基于单片机的智能风扇设计
  • DLMS/COSEM中的信息安全:安全密钥(中)续2
  • Rust:基于cxx的 C++ 混合编程,字符串参数的转换方法
  • 【JS开源库】基于最小二乘法的离散点拟合圆形,计算圆心坐标和半径
  • 关于redisson的序列化配置
  • vs code 插件: Crabviz
  • MAC上设置快捷打开终端以及如何运用剪切快捷键
  • 编程-设计模式 2:抽象工厂模式
  • 【跃迁之路】【699天】程序员高效学习方法论探索系列(实验阶段456-2019.1.19)...
  • 4. 路由到控制器 - Laravel从零开始教程
  • javascript 总结(常用工具类的封装)
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • React-redux的原理以及使用
  • spring-boot List转Page
  • Spring-boot 启动时碰到的错误
  • storm drpc实例
  • V4L2视频输入框架概述
  • Web设计流程优化:网页效果图设计新思路
  • 阿里云应用高可用服务公测发布
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 我的面试准备过程--容器(更新中)
  • 我的业余项目总结
  • 我有几个粽子,和一个故事
  • 用简单代码看卷积组块发展
  • 长三角G60科创走廊智能驾驶产业联盟揭牌成立,近80家企业助力智能驾驶行业发展 ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • ​ArcGIS Pro 如何批量删除字段
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • # 数据结构
  • #Datawhale AI夏令营第4期#多模态大模型复盘
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (0)Nginx 功能特性
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (二)hibernate配置管理
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (深度全面解析)ChatGPT的重大更新给创业者带来了哪些红利机会
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (五)c52学习之旅-静态数码管
  • (转)3D模板阴影原理
  • (转)ObjectiveC 深浅拷贝学习
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .Net 4.0并行库实用性演练