Java编程!没有什么是数组搞不定的,最常用的数据类型第13
嗨大家好!我是学长,今天的你过得还好吗?
这里是offer学院,帮你轻松拿offer
2022。11。21
我们要统计一个公司50名员工的工资情况。
例如计算平均工资。按照我们之前所学的知识,在程序中我们需要声明50个变量,salary1、salary2、。。。、salary50,来分别记住每个员工的工资,然后计算平均值,这样做,是不是非常麻烦。doublesalary1100;doublesalary2100;。。。doublesalary50100;doubleaverage(salary1salary2。。。salary50)50;
有没有优化方法呢?
Java开发者就给了我们一个解决办法,用一组相连的集合,来记着这50个员工的工资,然后对他们进行操作。doublesum0;doubleaverage;double〔〕salary〔100〕;。。。。for(inti0;i100;i){sumsumsalary〔i〕;}averagesum100;
这种一组数据的集合,就叫做数组,这就是它的由来。
一、了解数组
定义:
数组是指一组数据的集合,数组中的每个数据被称为元素。在数组中可以存放任意类型的元素,但是在同一个数组里面存放的元素类型必须一致。
分类:
数组可以分为一维数组和多维数组(最常见的是二维数组)。
本小节我们主要先给大家讲一下一维数组。二、一维数组
语法:数组类型〔〕数组名new数组类型〔数组长度〕;数组类型〔〕数组名new数组类型〔〕{数组元素0,数组元素1,。。。};数组类型〔〕数组名{数组元素0,数组元素1,。。。};
一维数组定义:int〔〕idsnewint〔100〕;String〔〕namesnewString〔〕{西熙,叮当,糖糖,次龙};
内存图:数组属于引用数据类型的变量,数组中的元素的类型可以是基本数据类型,也可以使引用数据类型。创建数组对象会在内存中开辟一整块连续的空间。数组的长度一旦确定就不可以修改。
我们在这小节中,通过一个简图,让大家体会下Java中不同数据在内存中的存放位置,也就是java中内存的简单结构。
数组在内存中的变化图如下:
1。创建一个整型数组ids,长度为5
2。在堆区会有创建一片区域,然后这块区域的地址引用,存放在栈区的ids变量中。
代码演示:publicclassDemo131{publicstaticvoidmain(String〔〕args){1。第一种方式定义数组int〔〕idsnewint〔50〕;输出整个数组System。out。println(idsids);输出数组第一个元素System。out。println(ids〔0〕ids〔0〕);输出数组最后一个元素System。out。println(ids〔99〕ids〔49〕);下面这句会报错System。out。println(ids〔99〕ids〔51〕);2。第二种方式定义数组String〔〕namesnewString〔〕{乔峰,段誉,虚竹,无崖子};输出整个数组System。out。println(namesnames);输出数组第一个元素System。out。println(names〔0〕names〔0〕);输出数组最后一个元素System。out。println(names〔3〕names〔3〕);3。第三种方式定义数组Object〔〕objects{1,张三丰,男,20,18933943343,fff163。com};输出整个数组System。out。println(objectsobjects);输出数组的长度System。out。println(数组长度objects。length);输出数组第一个元素System。out。println(objects〔0〕objects〔0〕);输出数组最后一个元素System。out。println(objects〔(objects。length1)〕objects〔objects。length1〕);}}
分析:
1。直接打印数组变量,并不能输出数组里的数据,输出的是变量类型哈希码。
2。数组是一组相同类型的数据,有一个共同的名字,可以通过下标取访问每一个元素。
注意:数组下标是从0开始的,对于上述定义的数组ids,长度是50,因此第一个元素时ids〔0〕,最后一个元素是ids〔49〕,访问ids〔50〕是要出错的,下标越界了。数组ids的长度,可以通过其length属性获取。
Java中不同数据类型元素的初始值:
三、操作数组:
在程序开发中,数组的应用非常广泛,灵活地使用数组对实际开发很重要。接下来,本节将针对数组的常见操作,如数组的遍历、最值的获取、数组的排序等,进行详细地讲解。
数组元素的访问:publicclassDemo132{publicstaticvoidmain(Stringargs〔〕){intnum1〔〕newint〔5〕;num1〔0〕32;每个元素单独初始化num1〔1〕543;num1〔2〕17;num1〔3〕8;num1〔4〕95;intnum2〔〕newint〔10〕;for(inti0;i10;i){采用循环方式初始化num2〔i〕i1;}System。out。println(第一个数组:);for(intj0;jnum1。length;j){采用循环方式输出数组的所有元素System。out。print(num1〔j〕);}System。out。println();System。out。println(第二个数组:);for(intx0;xnum2。length;x){System。out。print(num2〔x〕);}}}
数组的属性:
数组是引用类型,具有属性,常用的数组属性就是数组的长度length,在使用时需注意:数组的长度(length)必须0;length为只读。利用length遍历数组
数组的遍历:publicclassDemo133{publicstaticvoidmain(String〔〕args){inta〔〕{1,12,33};intsuma〔0〕;intmaxa〔0〕;intmina〔0〕;for(inti1;imax){maxa〔i〕;}if(a〔i〕min){mina〔i〕;}}doubleave(double)sum3;System。out。println(平均值ave);System。out。println(最大值max);System。out。println(最小值min);}}
循环赋值:publicclassDemo134{publicstaticvoidmain(String〔〕args){声明一个整型数组int〔〕arrnewint〔10〕;使用for循环对数组arr进行遍历,将数字1到10赋值给数组arrfor(inti0;iarr。length;i){arr〔i〕i1;}循环赋值完成,此时arr{1,2,3,4,5,6,7,8,9,10}遍历数组,打印数组中每一个元素for(inti0;iarr。length;i){System。out。print(arr〔i〕);}}}
遍历获取元素:publicclassDemo135{publicstaticvoidmain(String〔〕args){初始化一个整型数组int〔〕arr{1,2,3,4,5};使用for循环遍历数组arrfor(inti0;iarr。length;i){打印位置i的元素System。out。println(索引位置i的元素为:arr〔i〕);}}}
增强for循环:publicclassDemo136{publicstaticvoidmain(String〔〕args){初始化字符串数组wordsString〔〕words{Welcome,to,java};for(Stringword:words){System。out。print(word);}}}
实例中遍历了一个单词数组,并且将它们打印成了一个句子。foreach循环对words数组进行了遍历,并依次将每个索引的值赋值给了word变量,然后再执行循环体中的语句。显然foreach循环的代码看起来更加清晰。但增强for循环无法指定遍历顺序,也无法获取数组的索引。四、学习小结
本小节我们学习了Java数组,知道了数组是引用数据类型。
它在创建时,会在内存中开辟一个连续的空间;数组是同一数据类型的集合。
可以使用数组下标来引用数组元素,数组元素的下标都是从0开始,使用下标不要超出范围,否则会抛出异常。
可以使用length属性获取数组的长度。我们在下一小结看看多维数组的使用与学习吧。
还是那句话:我亦无他,唯手熟尔!
我们下期再见!
END
惠州巽寮湾双月湾和十里银滩,哪个好玩?有没有实用的攻略?各有特色吧,作为这个几个海滩的常客,我来总结一下个人感觉,几个地方海滩特点1巽寮湾,开发比较久,周边配套吃喝玩乐的酒店,农家,市场,比较多,是三个地方里面最多的,所以,高消费计划和
是否能通过把原子弹包在很厚的铁皮里来防止原子弹爆炸?需要多厚?阻止原子弹爆炸是肯定不行的,因为只要核装药达到了临界质量就肯定会发生裂变反应,也就是说原子弹肯定是会爆炸,这跟铁皮的厚度无关,题目想要问的应该是多厚的铁就能不被原子弹给炸坏吧,这个
PMP证书的有效期如何查询?续证流程是怎样的?可以直接在PMI官网上登录自己的账号,看到个人页面就可以看到自己的证书是否过期了,如果续证栏目上图标颜色是灰色代表需要续证了。续证的流程首先你要在三年之内积攒60PDU150美元,
为什么胖子减肥都很难?为什么胖人减肥难?说到减肥难这件事,其实不只是胖人减肥难,体重超标的普通人哪个减肥不也是挺难的。可以说,减肥成了全民的一个重要话题,而且对于那些准备减肥的人来说,会觉得不管怎么努力
到了孕晚期,每天散步多久才能够帮助顺产?我现在就是在孕晚期,这一周是孕39周。对于每天的运动量,我也很关注。因为我头胎就是顺产,所以二胎我也希望自己能够顺产,多运动对于顺产是有帮助的。但是,到了孕晚期,万一运动过量,造成
患上肠癌可能有哪些征兆?肠癌的发展过程其实很缓慢,大概1015年。如果能在癌变前期发现问题,患者五年生存率可以达到100,但是如果在晚期才发现癌变,患者五年生存率则会显著降低到10左右。该35岁男子突发肠
NBL对抗比NBA还激烈,周琦首秀2010,大家觉得如何?周琦在年初跟cba新疆队关系闹崩了,一度陷入到无球可打的困境,好在有澳洲的球队邀请周琦去到那边打球,周琦也跟NBL凤凰队签订了两年合同。大家都很期待周琦在NBL如此激烈对抗的联赛上
苹果手机和华为手机你会怎么选?这位朋友你好!我是客家YOYO,很高兴回答你这个问题!苹果手机和华为手机你会怎么选?我是在欧洲这边上班的,建议你买国产手机,现在华为手机在世界上非常出色,苹果手机的名气是我们中国人
如何过至简生活?我爷爷96岁的时候过世。他去世后,我们在他房间清理出了很多衣物,都是全新的。我们这些孙辈,过年给他买的上千块钱的羽绒服,还有羊绒衫,羽绒被,他都没有拆开来用,爷爷以前总是说,我年纪
你愿意接受纯中药面膜吗?首先很荣幸回答这个问题?我觉得是可以接受的比如说以下几种一海澡面膜以海藻提取物的矿物质成份,控油清洁毛孔,提供充足的水分,镇静疲劳粗糙的皮肤,使皮肤维持细腻有光泽。纯天然植物海藻,
农村办喜事或丧事的时候,为什么吹唢呐的要去给大厨打个招呼?农村红白喜事上有着不少看似奇怪的规矩,这些规矩会让不懂的人初次看到感觉错愕。比如有些地方娶媳妇时,会在吃饭桌上提前包好一个红包,等人家端盘子的人过来了,人家也不说话,直接拿走就行了
经常染发,真的会致癌吗?多久染一次好?做好3点,或可放心染家住哈尔滨的王女士,三十多岁时就长出了白发,一开始只是零星几根,但过了四十后,白头发越来越多。王女士拔不过来,只好去染发遮盖。染发起初确实给了王女士自信,但头发长得快,不到一个月,
60岁到65岁这几年,要有远见,逼自己跟这些人拉关系有名人说过这么一句话,所有的生活方式,都该适可而止。该工作的时候工作,该休息的时候休息,这是适可而止的生活方式该交往的时候交往,该独处的时候独处,这也是适可而止的做人方式。谈到社交
佟丽娅格局不一般花心萝卜陈思诚又有女朋友了!经过网友多方面对比,女方疑似是演员阮巨,这位99年出生的小妹儿,刚刚出道满2年。两人被拍当晚,女方穿了一件红色碎花裙,其深V造型显露出事业线,长度刚刚好
翔安香山50亩向日葵花海绽放,花儿朵朵向阳开海峡导报新福建客户端9月17日讯(记者曾艺轩通讯员彭丽娟林木阳摄影报道)近日,翔安香山50亩向日葵竞相开放,美不胜收。据了解,翔安香山每个季度都会种植不同的花卉,目前种植的是向日葵
奇花异果!这100种花凋谢后仍然令人震惊平时我们只知道花的美艳秀丽花的多姿多彩,很少留意到,有些花的果实其实比花本身更灿烂更迷人,尤其是现在,已经到了秋天,累累果实挂满枝头,在秋风摇曳中,在蓝天映衬下,在双眸凝视里,红的
梅花过境!这里车窗上飞来大虾9月16日凌晨,台风梅花在山东青岛沿海再次登陆,带来风浪。台风过境之后,位于青岛市黄岛区的海军公园海滩大幅退潮,大量海鲜被留在海滩上,有市民前来赶海。海军公园位于青岛市黄岛区,东临
电商产品初识业务行业知识当前公司架构电商本质信息流商流资金流物流形成了电商流通的四要素。资金流作为连接卖方买方服务方之间的纽带,构建了各角色之间的之间的资金转移过程,包括付款转账货款结算服务付
CC编程这才是你最需要的C语言C学习路线先聊几个有趣的问题这几个问题都是私信里常被问到的,也是我当时学习过程中的一些疑惑。问为啥我学完了C语言或者C,却还是啥东西也做不出来?答编程语言学完了就能做出东西那也真是天才哇!应
什么是加密?6种顶级加密方法示例在网络犯罪日益猖獗的世界中,知道有许多方法可以维护网络安全令人欣慰。详细了解如何加密。在短短20年的时间里,互联网已经从一种理论工具转变为我们日常活动各个方面的中心,从通信和商务到
互联网湘军,进入抱团新阶段潇湘眼原创文丨丁丁第九届互联网岳麓峰会已经落下帷幕,但展望下一个9年,抱团取暖的共建思路,或是未来湘籍企业家的主旋律。这是疫情以来,大家聚得最齐的一次,大家得到共识,要抱团取暖,跨
生而为创新!我们自研的编程语言Unilang问世2022年9月,deepin正式公开了自研全新通用目的编程语言Unilang!回顾过去,倍觉光阴荏苒2020年4月,这一年,我们决定开发自己的语言,进一步往上做GUI框架2020年