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]);}}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/25724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Android面试八股文】一图展示 Android生命周期:从Activity到Fragment,以及完整的Android Fragment生命周期

图片来源于&#xff1a;https://github.com/xxv/android-lifecycle Android生命周期&#xff1a;从Activity到Fragment 图&#xff1a;android-lifecycle-activity-to-fragments.png 完整的Android Fragment生命周期 图&#xff1a;complete_android_fragment_lifecycle.png…

人脸考勤项目实训

第一章 Python-----Anaconda安装 文章目录 第一章 Python-----Anaconda安装前言一、Anaconda是什么&#xff1f;二、Anaconda的前世今生二、Windows安装步骤1.官网下载2.安装步骤安装虚拟环境 总结 前言 工欲善其事必先利其器&#xff0c;项目第一步&#xff0c;安装我们的环境…

Django ListView 列表视图类

ListView是Django的通用视图之一&#xff0c;它用于显示一个对象列表。这个视图将所有的对象作为一个上下文变量传递给模板。 1&#xff0c;创建应用 python manage.py startapp app3 2&#xff0c;注册应用 Test/Test/settings.py Test/Test/urls.py 3&#xff0c;添加模型 …

【EDA】SSTA中最慢路径与最快路径统计计算

假设(X1,X2)为二元高斯随机向量,均值(μ1,μ2),标准差(σ1,σ2),相关系数ρ 定义:X=max(X1,X2),Y=min(X1,X2) SSTA中计算setup/hold的worst delay时即求X、Y,路径N对应维度为N维。 X的概率密度函数PDF为f(x)=f1(-x)+f2(-x),f1和f2为: 其中小Φ和大Φ…

牛客题目数据结构

做过线段树2模板大概可以写出一部分代码&#xff0c;这题主要关键点是怎么维护平方和 借图了 这样处理完maketag的代码就出来了 void maketag(int id,int l,int r,ll v,int opt){if(opt1){seg[id].val*v;seg[id].pfval*(v*v);seg[id].mul*v;seg[id].add*v;}else{seg[id].pfva…

【机器学习】决策树模型(个人笔记)

文章目录 多样性指标基尼杂质指数&#xff08;Gini Impurity Index&#xff09;熵&#xff08;Entropy&#xff09; 决策树的应用 源代码文件请点击此处&#xff01; 多样性指标 基尼杂质指数&#xff08;Gini Impurity Index&#xff09; 若集合中包含 m m m 个元素和 n …

LeetCode1318或运算的最小翻转次数

题目描述 给你三个正整数 a、b 和 c。你可以对 a 和 b 的二进制表示进行位翻转操作&#xff0c;返回能够使按位或运算 a OR b c 成立的最小翻转次数。「位翻转操作」是指将一个数的二进制表示任何单个位上的 1 变成 0 或者 0 变成 1 。 解析 这一题就按位依次比较就行了。取这…

[C++数据结构之看懂就这一篇]图(上)

&#x1f4da;博客主页&#xff1a;Zhui_Yi_&#x1f50d;&#xff1a;上期回顾&#xff1a;JAVA面向对象&#xff08;上&#xff09;❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更新的动力❤️&#x1f387;追当今朝…

Simscape Multibody与RigidBodyTree:机器人建模

RigidBodyTree&#xff1a;主要用于表示机器人刚体结构的动力学模型&#xff0c;重点关注机器人的几何结构、质量和力矩&#xff0c;以及它们如何随时间变化。它通常用于计算机器人的运动和受力情况。Simscape Multibody&#xff1a;作为Simscape的一个子模块&#xff0c;专门用…

情景题之小明的Linux实习之旅:linux实战练习1(下)【基础命令,权限修改,日志查询,进程管理...】

小明的Linux实习之旅&#xff1a;基础指令练习情景练习题下 前景提要小明是怎么做的场景1&#xff1a;初识Linux&#xff0c;创建目录和文件场景2&#xff1a;权限管理&#xff0c;小明的权限困惑场景3&#xff1a;打包与解压&#xff0c;小明的备份操作场景4&#xff1a;使用G…

【思考】Vue2响应丢失、$set

【思考】Vue2响应丢失、$set vue2响应丢失情况复现原因解决总结 vue2响应丢失情况复现 场景&#xff1a;直接通过数组下标去修改数组造成响应丢失 <template><div><p v-for"(item, index) in list" :key"index">{{item}}</p><…

渗透测试模拟实战(二)-BlueCMS平台

渗透测试 渗透测试是维护网络安全的重要组成部分&#xff0c;可以帮助组织识别并修复潜在的安全漏洞&#xff0c;减少被恶意攻击的风险。然而&#xff0c;进行渗透测试时必须遵守法律和道德规范&#xff0c;确保所有活动都在授权范围内进行。 环境部署&#xff1a; study2016、…

【优选算法】优先级队列 {优先级队列解决TopK问题,利用大小堆维护数据流的中位数}

一、经验总结 优先级队列&#xff08;堆&#xff09;&#xff0c;常用于在集合中筛选最值或解决TopK问题。 提示&#xff1a;对于固定序列的TopK问题&#xff0c;最优解决方案是快速选择算法&#xff0c;时间复杂度为O(N)比堆算法O(NlogK)更优&#xff1b;而对于动态维护数据流…

linux 网桥学习

前言&#xff1a; 本文来学习一下linux网桥概念和网桥配置 1. linux网桥概念 网桥&#xff0c;类似于中继器&#xff0c;连接局域网中两个或者多个网段。它与中继器的不同之处就在于它能够解析它收发的数据&#xff0c;读取目标地址信息&#xff08;MAC&#xff09;&#xff…

立创EDA专业版设置位号居中并调整字体大小

选择某一个器件位号&#xff0c;右键->查找&#xff1a; 选择查找全部&#xff1a; 下面会显示查找结果&#xff1a; 查看&#xff0c;所有的位号都被选中了&#xff1a; 然后布局->属性位置&#xff1a; 属性位置选择中间&#xff1a; 然后位号就居中了 调整字体大小&a…

微信小程序学习笔记(1)

文章目录 一、文件作用app.json&#xff1a;project.config.json:sitemap.json页面中.json 二、项目首页三、语法**WXML**和**HTML**WXSS 和CSS的区别小程序中.js文件的分类 一、文件作用 app.json&#xff1a; 当前小程序的全局配置&#xff0c;包括所有页面路径、窗口外观、…

文件的基础必备知识(初学者入门)

1. 为什么使用文件 2. 什么是文件 3. 二进制文件和文本文件 4. 文件的打开和关闭 1.为什么使用文件 我们写的程序数据是存储在电脑内存中&#xff0c;如果程序退出&#xff0c;内存回收&#xff0c;数据就丢失&#xff0c;等程序再次运行时&#xff0c;上次的数据已经消失。面…

每日复盘-20240607

今日关注&#xff1a; 这几天市场环境不好&#xff0c;一直空仓。 六日涨幅最大: ------1--------605258--------- 协和电子 五日涨幅最大: ------1--------605258--------- 协和电子 四日涨幅最大: ------1--------605258--------- 协和电子 三日涨幅最大: ------1--------0…

入侵报警系统的智慧核心——ARMxy工控机深度应用

智能安防领域高清视频监控、人脸识别门禁系统以及入侵报警系统的智能化升级&#xff0c;正以前所未有的速度推动着行业的变革。在这场变革中&#xff0c;ARMxy工业计算机以其卓越的性能、高度的灵活性及强大的集成能力&#xff0c;成为了众多安防解决方案中的核心组件。 高清视…

BC11 学生基本信息输入输出

BC11 学生基本信息输入输出 废话不多说上题目&#xff1a; 这道题表面上很简单&#xff0c;但是里面有很重要的点先给大家上正确的代码&#xff1a; #include<stdio.h> int main() {int stu 0;float c 0;float English 0;float math 0;scanf("%d;%f,%f,%f"…