Java数组
【摘要】这是一份记录本人【Java Learning】的资料库,输出形式主要为Java相关的Demo演示,对于一些理解比较困难的地方会拎出来通过博客详细介绍。旨在帮助自己强化相关知识的理解和养成良好的学习习惯,同时也希望可以帮助到更多的人。
前言
回顾一下自己刚刚开始认识数组的那会,还是感觉好神奇的,对着课本赞叹666。当然肯定是结合着实际场景才会体会到数组的美丽。这么聊吧,如果你想要存放全班同学的姓名,你怎么办?
如果没有接触过数组,我们一定想这样做:
1 | String name1 = "小A"; |
但是,肯定不是这样啦!班级如果50人,这样搞你会炸掉的,哈哈哈哈。创造来源于需求,那么,下面就来走进数组的世界。
数组特点
- 具备相同的数据类型。
- 所有的数组元素共享同一个数组名字。
- 通过下标来访问元素,下标从0开始,到length-1结束。
数组定义
定义:数组是具有相同数据类型的一组数据集合。
语法:数据类型[] 数组名;
如:
1 | int[] iarr ;//仅仅是定义/声明 一个整型数组。 |
数组初始化
如何初始化一个数组?
首先,我们要记住,数组是对象类型。
所以,需要使用new运算符来初始化数组。
最后,要明确指定数组的初始化长度。
而且,长度一旦确定,是不可再变的。
如:
1 | int[] iarr = new int[100]; |
数组操作
迭代数组
如何迭代一个数组?
1.普通for循环
1 | //Code: |
2.增强for循环
1 | 语法: |
元素赋值
如何给数组元素赋值?
A.一个一个赋值
1 | //Code |
B.在初始化时直接赋值。
1 | //Code |
C.利用循环给元素赋值。
用来用在元素值是有“规律”的情况下。
如:
1 | int[] arr = new int[10];//想要在此数组中存放1~10 |
数组操作说明
数组是一种基本的数据结构[data structure]。有数据结构就会想到算法,它们相辅相成,最终目的为了数据存取的高效性。
对数据的操作,本质上可以归为:增、删、查、改。
二维数组
二维数组就是数组中的元素还是一维数组。
多维数组就是数组中的元素还是数组。
Java语言支持多维数组。
二维数组的定义:
数据类型[][] 数组名 = new 数据类型[rows][cols];
其中,在初始化二维数组时,rows必须要指定。而cols可以省略。
如果省略了cols,则表示只初始化了二维本身,而二维数组中的元素没有初始化。
如:
1 | int[][] arr = new int[3][]; |
所以,在初始化二维数时,如果指定了 cols,则这个二维数组我们说是规则的。
如
1 | int[][] arr = new int[n][m]; // |
练习题
1.数组元素的copy。
A.利用java.lang.System类中的arraycopy方法。
System.arraycopy(
Object src,//源数组
int scrPos,//起始位置
Object dest,//目标数组
int destpos,//目标数组的存放起始位置
int length,//COPY元素的个数
)
要求:源数组和目标数组都是事先初始化的。
B.利用java.util.Arrays类中的copuOf方法。
2.请设计一个方法,根据用户指定的长度,来生产一个存放了指定长度的斐波那契数列值。(Fibonacci)
如:长度为10的数列为下:
1 1 2 3 5 8 13 21 34 55
点击进入答案解析
3.猜数字游戏:由程序生成一个1~100以内的随机数,然后让用户猜,如果用户所猜的数比答案大,则提示:大了。如果用户所猜的数比答案小,则提示:小了。
直到猜对为止,并输出用户猜的次数。
点击进入答案解析
4.找出1000以内的完美数。
完美数是指这个数刚好是它的所有约数之和。
如:
6=1+2+3;
点击进入答案解析
5.假设有N个小孩围成一圈,这些小孩从1开始编号,直到报到N,现在假设从1号小孩开始报数,依次类推,每报到M的小孩出列,直到所有的小孩都已出列。
请打印出出列小孩的序列。(数组存放小孩)
点击进入答案解析
结束语
哈啊哈哈,每天进步一点点哦!