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

Java数组的定义 ,基本概念与使用

数组的定义

1.问题:想将一个数据保存起来,我们可以使用变量,但是变量一次只能存储一个数据,所以我们想能不能一次存多个数据2.数组概述:是一个容器,数组本身属于引用数据类型3.作用:一次存储多个数据4.特点:a.既可以存储基本类型的数据,还能存储引用类型的数据b.定长(定义数组时长度为多长,最多就能存多少个数据) 5.定义:a.动态初始化:数据类型[] 数组名 = new 数据类型[长度]数据类型 数组名[] = new 数据类型[长度]    各部分解释:等号左边的数据类型:规定了数组中只能存储什么类型的元素[]:代表的是数组,一个[]代表一维数组,两个[][]代表二维数组    数组名:自己取的名字,遵循小驼峰new:代表的是创建数组等号右边的数据类型:要和等号左边的数据类型一致[长度]:指定数组长度,规定了数组最多能存多少个数据    b.静态初始化数据类型[] 数组名 = new 数据类型[]{元素1,元素2...}  -> 不推荐使用 数据类型 数组名[] = new 数据类型[]{元素1,元素2...}  -> 不推荐使用    c.简化的静态初始化:数据类型[] 数组名 = {元素1,元素2...}-> 推荐使用6.区别:a.动态初始化:定义的时候只指定了长度,没有存具体的数据当只知道长度,但不知道具体存啥数据时可以使用动态初始化b.静态初始化:定义的时候就直接知道存啥了   
public class Demo01Array {public static void main(String[] args) {//动态初始化int[] arr1 = new int[3];String[] arr2 = new String[3];//静态初始化int[] arr3 = new int[]{1,2,3,4,5};//简化静态初始化int[] arr4 = {1,2,3,4,5};String[] arr5 = {"乾隆","和珅","纪晓岚"};}
}

第二章.数组操作

1.获取数组的长度

1.格式:数组名.length2.注意:length后面不要带小括号,因为length不是一个方法,而是数组中的一个属性
public class Demo01Array {public static void main(String[] args) {//定义一个数组String[] arr1 = {"迪迦奥特曼","猫和老鼠","花园宝宝","海绵宝宝","圣斗士","百变小樱魔术卡","熊出没"};int len = arr1.length;System.out.println("len = " + len);}
}

2.索引

1.概述:元素在数组中存储的位置2.特点:a.索引唯一b.索引都是从0开始的,最大索引是数组长度-1 3.注意:我们将来操作元素,必须通过索引来操作存数据,要指定索引取数据,要指定索引查数据,要指定索引

3.存储元素

1.格式:数组名[索引值] =-> 将等号右边的值放到数组指定的索引位置上
public class Demo02Array {public static void main(String[] args) {int[] arr = new int[3];arr[0] = 100;//将100存到了arr这个数组的0索引上arr[1] = 200;//将200存到了arr这个数组的1索引上arr[2] = 300;//将300存到了arr这个数组的2索引上//arr[3] = 1000;System.out.println("============================");String[] arr1 = new String[3];arr1[0] = "东方不败";arr1[1] = "岳不群";arr1[2] = "林平之";}
}
public class Demo03Array {public static void main(String[] args) {//键盘录入三个整数,存储到数组中int[] arr = new int[3];Scanner sc = new Scanner(System.in);/*先看等号右边的,先录入,将录入的数据保存到指定的索引位置上*//*  arr[0] = sc.nextInt();arr[1] = sc.nextInt();arr[2] = sc.nextInt();*//* for (int i = 0; i < 3; i++) {arr[i] = sc.nextInt();}*/for (int i = 0; i < arr.length; i++) {arr[i] = sc.nextInt();}}
}
public class Demo04Array {public static void main(String[] args) {//定义一个长度为3的数组int[] arr = new int[3];Random rd = new Random();//arr[0] = rd.nextInt(10);//arr[1] = rd.nextInt(10);//arr[2] = rd.nextInt(10);for (int i = 0;i<arr.length;i++){/*先看等号右边的,先随机一个数保存到指定的索引位置上*/arr[i] = rd.nextInt(10);}}
}

4.获取元素

1.地址值:数组在内存中的身份证号,唯一标识,我们可以通过这个唯一标识到内存中准确找到这个数,从而操作这个数组中的数据2.注意:a.直接输出数组名,会直接输出数组在内存中的地址值 b.如果数组中没有存元素,那么直接获取索引上对应的元素也是有值的,只不过不是我们存储的数据,而是数组中的元素默认值整数: 0小数: 0.0字符: '\u0000' -> 空白字符 -> 对应的int值是0布尔: false引用: null    
public class Demo05Array {public static void main(String[] args) {int[] arr = new int[3];arr[0] = 100;arr[1] = 200;arr[2] = 300;System.out.println(arr);//[I@135fbaa4 -> 地址值System.out.println(arr[0]);//输出0索引上的元素System.out.println(arr[1]);//输出1索引上的元素System.out.println(arr[2]);//输出2索引上的元素int[] arr1 = new int[3];arr1[0] = 1000;arr1[1] = 2000;arr1[2] = 3000;System.out.println(arr1);//[I@45ee12a7System.out.println(arr1[0]);//输出0索引上的元素System.out.println(arr1[1]);//输出1索引上的元素System.out.println(arr1[2]);//输出2索引上的元素System.out.println("=============================");int[] arr2 = new int[3];System.out.println(arr2[0]);//输出0索引上的元素    0System.out.println(arr2[1]);//输出1索引上的元素    0System.out.println(arr2[2]);//输出2索引上的元素    0}
}

public class Demo06Array {public static void main(String[] args) {int[] arr = {1,2,3,4,5,6};//需求:将arr中的数据放到另外一个数组中/*如果我们想将arr中的数据复制到新数组中那么新数组的长度就应该是arr数组的长度*/int[] newArr = new int[arr.length];System.out.println(newArr[0]);//默认值0System.out.println(newArr[1]);//默认值0System.out.println(newArr[2]);//默认值0System.out.println(newArr[3]);//默认值0System.out.println(newArr[4]);//默认值0System.out.println(newArr[5]);//默认值0/*将arr数组指定索引位置上的元素获取出来放到等号左边newArr数组的指定索引位置上*/newArr[0] = arr[0];newArr[1] = arr[1];newArr[2] = arr[2];newArr[3] = arr[3];newArr[4] = arr[4];newArr[5] = arr[5];System.out.println(newArr[0]);System.out.println(newArr[1]);System.out.println(newArr[2]);System.out.println(newArr[3]);System.out.println(newArr[4]);System.out.println(newArr[5]);}
}

arr[0] = arr1[0]

如果数组名[索引值]在等号右边就代表获取

如果数组名[索引值]在等号左边就代表存值

比如 :

a.int element = arr[0] -> 获取0索引上的元素,赋值给一个变量

b.arr[0] = 100 -> 将100存储到0索引上

c.arr[0] = arr1[0] -> 将arr1的0索引上的元素获取出来,赋值给等号左边arr的0索引上

5.遍历数组

1.遍历:将元素从数组中一个一个的获取出来
public class Demo07Array {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 5, 6};/*for (int i = 0; i < 6; i++){System.out.println(arr[i]);}*//* for (int i = 0; i < arr.length; i++){System.out.println(arr[i]);}*//*快速遍历快捷键: 数组名.fori*/for (int i = 0; i < arr.length; i++) {System.out.println(arr[i]);}}
}
快速遍历快捷键: 数组名.fori
public class Demo08Array {public static void main(String[] args) {int[] arr = {1,2,3,4,5,6};//需求:将arr中的数据放到另外一个数组中/*如果我们想将arr中的数据复制到新数组中那么新数组的长度就应该是arr数组的长度*/int[] newArr = new int[arr.length];System.out.println(newArr[0]);//默认值0System.out.println(newArr[1]);//默认值0System.out.println(newArr[2]);//默认值0System.out.println(newArr[3]);//默认值0System.out.println(newArr[4]);//默认值0System.out.println(newArr[5]);//默认值0/*将arr数组指定索引位置上的元素获取出来放到等号左边newArr数组的指定索引位置上*//* newArr[0] = arr[0];newArr[1] = arr[1];newArr[2] = arr[2];newArr[3] = arr[3];newArr[4] = arr[4];newArr[5] = arr[5];*/for (int i = 0; i < arr.length; i++) {newArr[i] = arr[i];}//遍历for (int i = 0; i < newArr.length; i++) {System.out.println(newArr[i]);}}
}

相关文章:

  • Helm离线部署Rancher2.7.10
  • 解决windows11开机xbox自启动
  • 十二、【源码】配置注解执行SQL
  • 10秒钟docker 安装Acunetix
  • 43【PS 作图】颜色速途
  • 一篇文章搞定Java数组初始化,从此告别迷惑
  • 【Python核心数据结构探秘】:元组与字典的完美协奏曲
  • C# 类或结构体的成员
  • 十大排序
  • 【论文阅读】SELF-RAG,让模型决策和反思检索
  • 【设计模式】代理模式(结构型)⭐⭐⭐
  • 苹果WWDC大会AI亮点:大揭晓
  • HCIE-IPv6过渡技术
  • 【2023】LitCTF
  • Django中间件
  • 【跃迁之路】【733天】程序员高效学习方法论探索系列(实验阶段490-2019.2.23)...
  • 〔开发系列〕一次关于小程序开发的深度总结
  • canvas 五子棋游戏
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • Hexo+码云+git快速搭建免费的静态Blog
  • javascript数组去重/查找/插入/删除
  • Java-详解HashMap
  • MySQL-事务管理(基础)
  • nodejs调试方法
  • Terraform入门 - 3. 变更基础设施
  • 全栈开发——Linux
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 一天一个设计模式之JS实现——适配器模式
  • 用Visual Studio开发以太坊智能合约
  • 与 ConTeXt MkIV 官方文档的接驳
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • ionic入门之数据绑定显示-1
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • $.ajax()参数及用法
  • (1)(1.9) MSP (version 4.2)
  • (2)Java 简介
  • (7)STL算法之交换赋值
  • (el-Date-Picker)操作(不使用 ts):Element-plus 中 DatePicker 组件的使用及输出想要日期格式需求的解决过程
  • (MonoGame从入门到放弃-1) MonoGame环境搭建
  • (六)Hibernate的二级缓存
  • (十六)、把镜像推送到私有化 Docker 仓库
  • .Net Core 生成管理员权限的应用程序
  • .NET框架类在ASP.NET中的使用(2) ——QA
  • .NET应用UI框架DevExpress XAF v24.1 - 可用性进一步增强
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • @AutoConfigurationPackage的使用
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [20171113]修改表结构删除列相关问题4.txt
  • [bbk5179]第66集 第7章 - 数据库的维护 03
  • [bzoj4240] 有趣的家庭菜园
  • [C#]winform制作圆形进度条好用的圆环圆形进度条控件和使用方法