《Java从入门到放弃》JavaSE篇:数组
来源:互联网 发布:c语言闰年判断 编辑:程序博客网 时间:2024/06/06 09:15
数组,就是一组数!!!
之前我们学习的变量只能保存一个数据,如果一个部门有50个员工的姓名要保存,怎么办?如果定义50个变量··················
String name1;
String name2;
......
......
String name49;
String name50;
,这画面太美,我不敢看...
就算你保存下来了,现在我要找一个叫“罗大锤”的员工,那代码怎么写呢?
if(name1.equals("罗大锤")){
}
if(name2.equals("罗大锤")){
}
......
if(name49.equals("罗大锤")){
}
if(name50.equals("罗大锤")){
}
,这代码更美,看得要咽口水...
这时,数组出现了!!!他身披金甲圣衣,脚踏七彩祥云.....,好吧,不废话了,直接上代码:
public
static
void
main(String[] args) {
//定义保存50个员工姓名的
String[] names =
new
String[
50
];
//2.赋值
names[
0
] =
"张小萌"
;
names[
10
] =
"李二爷"
;
names[
20
] =
"罗大锤"
;
//3.查找是否有员工叫罗大锤
for
(
int
i =
0
; i < names.length; i++) {
if
(names[i]!=
null
&& names[i].equals(
"罗大锤"
)){
System.out.println(
"找到罗大锤了,他的编号是"
+i);
break
;
}
}
}
注意:
数组的好处是解决了相同类型变量的存储问题。
定义数组与定义普通变量相比,多了一对[],并且数组的默认值,数值类型的值为0,引用类型的值为null。
后面new String[50],表示数组可以存储数据的个数,如果在使用时超过了范围则报错。
赋值是names[0] = "xxx";,这儿的[0]表示下标(也叫偏移量)。因为数组在内存是一块连续的内存空间,所以它是这样滴,names默认指向第一个数据,所以它偏移0个位置就是第一个数据,偏移1个位置就是第二个数据。所以最后一个数据的下标是——49!!!
数组一般配合循环使用。
OK,数组就这样了,多简单个东西啊!!!当然,他还有很多细节的语法,比如定义时这样写才是正确的:
String[] names =
new
String[
50
];
String[] names2 = {
"aaaa"
,
"bbb"
,
"ccc"
};
String[] names3 =
new
String[]{
"aaaa"
,
"bbb"
,
"ccc"
};
最后最后最后,数组的几个常用操作:
一、数组元素的遍历
public
static
void
main(String[] args) {
//定义数组并赋初值
int
[] nums = {
234
,
64
,
13
,
2
,
7
,
6
,
4
,
334
,
34
};
//遍历数组,length表示数组的元素个数
for
(
int
i =
0
; i < nums.length; i++) {
System.out.println(
"第"
+(i+
1
)+
"个元素的值为:"
+nums[i]);
}
}
二、数组的排序
public
static
void
main(String[] args) {
//定义数组并赋初值
int
[] nums = {
234
,
64
,
13
,
2
,
7
,
6
,
4
,
334
,
34
};
//遍历数组
for
(
int
i =
0
; i < nums.length; i++) {
System.out.println(
"第"
+(i+
1
)+
"个元素的值为:"
+nums[i]);
}
//数组排序
Arrays.sort(nums);
System.out.println(
"排序后的结果:"
);
//遍历数组
for
(
int
i =
0
; i < nums.length; i++) {
System.out.println(
"第"
+(i+
1
)+
"个元素的值为:"
+nums[i]);
}
}
结果:
如果要降序排列的话,我们还可以自己写代码:
public
static
void
main(String[] args) {
//定义数组并赋初值
int
[] nums = {
234
,
64
,
13
,
2
,
7
,
6
,
4
,
334
,
34
};
//遍历数组
for
(
int
i =
0
; i < nums.length; i++) {
System.out.println(
"第"
+(i+
1
)+
"个元素的值为:"
+nums[i]);
}
//数组排序
for
(
int
i =
0
; i < nums.length; i++) {
for
(
int
j = i+
1
; j < nums.length; j++) {
if
(nums[i]<nums[j]){
int
tmp = nums[i];
nums[i] = nums[j];
nums[j] = tmp;
}
}
}
System.out.println(
"排序后的结果:"
);
//遍历数组
for
(
int
i =
0
; i < nums.length; i++) {
System.out.println(
"第"
+(i+
1
)+
"个元素的值为:"
+nums[i]);
}
}
三、二维数组
前面所学的都是一维数组,比如保存一个部门的50名员工,就可以使用一维数组,如果公司有4个部门,人数最多的部门有50名员工,那需要这样定义数组:
String[][] names =
new
String[
4
][
50
];
并且现在要使用嵌套的循环来进行遍历了:
//外层遍历部门数
for
(
int
i =
0
; i < names.length; i++) {
//里层遍历每个部门的员工数
for
(
int
j =
0
; j < names[i].length; j++) {
System.out.println(
"这是部门"
+(i+
1
)+
"中的员工第"
+(j+
1
)+
"个员工"
);
}
}
到这儿,数组是真滴结束了,老规矩,布置几个练习吧:
输入一个字符串,分别统计出其中英文大写字母、小写字母、数字以及其它字符的个数
输入10个员工的薪水,求平均薪水和总薪水分别是多少,并统计5000以下有多少人,5000及以上的有多少人
已有一个已排好序的数组{23,34,55,87,108,210},现在输入一个数,要求按原来排序的规律将它插入到数组中
随机输入5个整数存入一个数组,然后按从小到大的顺序排序,并输出
“软件思维”博客地址:51CTO,博客园,感兴趣的小伙伴可以去看相关的其它博文。
- 《Java从入门到放弃》JavaSE篇:数组
- 《Java从入门到放弃》JavaSE入门篇:异常
- 《Java从入门到放弃》JavaSE入门篇:面向对象概念(入门版)
- 《Java从入门到放弃》JavaSE入门篇:面向对象概念(入门版)
- 《Java从入门到放弃》JavaSE入门篇:面向对象语法一(入门版)
- 《Java从入门到放弃》JavaSE入门篇:面向对象语法一(入门版)
- 《Java从入门到放弃》JavaSE入门篇:面向对象语法二(入门版)
- JAVA 从入门到放弃?
- java从入门到放弃
- Java从入门到高手到放弃
- 10分钟JAVA从入门到放弃
- java--从入门到放弃之一
- tensorflow从入门到放弃---第二篇
- tensorflow从入门到放弃---第三篇
- tensorflow从入门到放弃---第四篇
- Freemarker 从入门到放弃
- kmp从入门到放弃
- Dagger2从入门到放弃
- 处理器管理-信号量与PV操作
- 001_ExtJS 6.5 和 Sencha Cmd 6.5 GA版本发布
- [MySQL 5.7]:binlog --statement
- windows7 下为目录建立软链接
- Python中__init__方法注意点
- 《Java从入门到放弃》JavaSE篇:数组
- iOS开发 启动页图片不能随便删
- SQL service启动失败,请求失败或未及时响应
- oracle 11g 添加字段default值对历史数据影响
- 源码 Dialog 的 window 创建过程
- android自定义调节器控件 —— RegulatorView
- hadoop参数-core-site.xml
- Java设计模式之结构型模式-装饰器模式(Decorator)
- java序列化与反序列化