Java内功提升之数组
2015-11-23 18:06
597 查看
(一)什么是数组
数组,可以理解为一个巨大的“容器”,里面可以按顺序存放多个类型相同的数据。
比如:存储4名学生的成绩。
![](https://img-blog.csdn.net/20151123153223626)
数组中的元素可以通过,数组下标来访问,比如:scores[0]就可以取到第一个元素。
(二)Java中数组的使用
(三)使用循环操作Java中的数组
使用循环控制数组成员的操作。比如:
⚠:1)数组下标是从0开始的!!!
2)数组下标的范围是:0 到 数组长度减-1(注意不要越界);
数组越界案例:
int scores[] = new int[2];
scores[2] = 40; //数组元素正确赋值的方式是:scores[0] =50 ; scores[1] = 40;
编程练习:
完成 JAVA 程序,实现输出数组中的最大值、最小值和平均值
(四)使用Arrays类是java中提供的一个工具类,它位于java.util包中,这个类中包含了一些直接操作数组的排序,搜索等。
(1)Arrays常用的方法:
1)排序
语法:Arrays .sort(数组名);
可以使用sort()方法实现对数组的排序,只要将数组名放在sort()的括号中即可,当然,这是一个默认的升序排序!!!
比如:
运行结果为:
[game, movie, sports]
(2)使用foreach来操组数组
foreach 并不是java中的关键字,是for语句的特殊简化版本,在遍历数组跟集合时,更加方便快捷。
语法:
for(元素类型 元素变量 :遍历对象){
执行代码
}
比如:
运行结果:
使用for循环输出数组中的元素:
89
72
64
58
93
使用foreach循环输出数组中的元素:
89
72
64
58
93
(三)Java中的二维数组
二维数组,指的就是一种特殊的一维数组,其中,它的元素成员就是一维数组。
语法:
1)声明数组并分配空间
数据类型[][] 数组名 = new 数据类型[行的个数][列的个数];
或者
数据类型[][] 数组名;
数组名 = new 数据类型[行的个数][列的个数];
![](https://img-blog.csdn.net/20151124151051598)
运行结果:
1
2
3
编程小题:定义一个两行三列的二维数组 names 并赋值,使用二重循环输出二维数组中的元素。
输出结果:
tom
jack
mike
zhangsan
lisi
wangwu
OK ,这下对数组这个渣渣的理解就很清楚了!!!
数组,可以理解为一个巨大的“容器”,里面可以按顺序存放多个类型相同的数据。
比如:存储4名学生的成绩。
数组中的元素可以通过,数组下标来访问,比如:scores[0]就可以取到第一个元素。
(二)Java中数组的使用
1)声明数组 语法: 数组类型[] 数组名 或者 数组类型 数组名[] 比如: int[] num ; double scores[] ; 2)分配空间 其实,**就是指定数组中最多可以存储多少个元素** 语法:数组名 = new 数组类型 [数组长度]; 其中,数组长度就是数组中存放元素的个数。 num = new int[6]; scores = new double[6]; names = new String[6]; 话说,其实,你也可以这样(***声明数组的同时为它分配空间***): 语法: 数组类型[] 数组名 = new 数组类型[数组长度]; 或者 数组类型 数组名[] = new 数组类型[数组长度]; int[] num = new int[6]; double scores[] = new double[6.0]; String[] names = new String[6]; 3)数组的赋值 分配空间后就可以向数组中放数据了,**可以通过下标来进行赋值!** 比如: scores[0]=89.0; names[0]="一份耕耘,一份收获!"; num[5] = 77; 4)处理数组中数据 对赋值后的数组可以进行操作,比如: System.out.println("names中的第一个元素的值是:" + names[0]); 其实,**“声明+分配空间+赋值”可以一气呵成!** ,比如: int[] scores={34,56,78,89}; 或者 int[] scores= new int[]{34,56,78,89}; ***注意:本语句中右边的int[]中必须为空!!!(重要的事说3遍!!!)***
(三)使用循环操作Java中的数组
使用循环控制数组成员的操作。比如:
int scores[]={34,76,56,89}; for(int i = 0 ; i<scores.length ; i++ ){ System.out.println("数组中第"+(i+1)+ "个元素的值是: " + scores[i]); }
运行结果: 数组中第1个元素的值是:34 数组中第1个元素的值是:76 数组中第1个元素的值是:56 数组中第1个元素的值是:89
⚠:1)数组下标是从0开始的!!!
2)数组下标的范围是:0 到 数组长度减-1(注意不要越界);
数组越界案例:
int scores[] = new int[2];
scores[2] = 40; //数组元素正确赋值的方式是:scores[0] =50 ; scores[1] = 40;
编程练习:
完成 JAVA 程序,实现输出数组中的最大值、最小值和平均值
public class HelloWorld { public static void main(String[] args) { // 定义一个整型数组,并赋初值 int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 }; int max = nums[0]; // 假定最大值为数组中的第一个元素 int min = nums[0]; // 假定最小值为数组中的第一个元素 double sum = 0;// 累加值 double avg = 0;// 平均值 for (int i = 0; i < nums.length; i++) { // 循环遍历数组中的元素 // 如果当前值大于max,则替换max的值 if(nums[i] > max){ max = nums[i]; } // 如果当前值小于min,则替换min的值 if (nums[i] < min){ min = nums[i]; } // 累加求和 sum = sum + nums[i]; } // 求平均值 avg = sum / nums.length ; System.out.println("数组中的最大值:" + max); System.out.println("数组中的最小值:" + min); System.out.println("数组中的平均值:" + avg); } }
(四)使用Arrays类是java中提供的一个工具类,它位于java.util包中,这个类中包含了一些直接操作数组的排序,搜索等。
(1)Arrays常用的方法:
1)排序
语法:Arrays .sort(数组名);
可以使用sort()方法实现对数组的排序,只要将数组名放在sort()的括号中即可,当然,这是一个默认的升序排序!!!
比如:
//导入Arrays类 import java.util.Arrays; public class HelloWorld { public static void main(String[] args) { // 定义一个字符串数组 int[] scores = { 56,67,90}; // 使用Arrays类的sort()方法对数组进行排序 Arrays.sort(hobbys); System.out.println("排序后的元素为:"); //循环遍历并输出数组中的元素 for( int i = 0 ; i < i.length ; i++ ){ System.out.println(scores[i]); } }
2)将数组转化为字符串 语法: Arrays.toString(数组名); 说明:可以使用toString()方法将一个数组转换成字符串,按顺序将多个字符串连接在一起,多个元素之间使用逗号与空格隔开即可。 比如:
//导入Arrays类 import java.util.Arrays; public class ArraysTest { public static void main(String[] args) { // 定义一个字符串数组 String[] bobdys = { "sports", "game", "movie" }; // 使用Arrays类的sort()方法对数组进行排序 Arrays.sort(bobdys); // 使用Arrays类的toString()方法将数组转换为字符串并输出 System.out.println(Arrays.toString(bobdys)); } }
运行结果为:
[game, movie, sports]
(2)使用foreach来操组数组
foreach 并不是java中的关键字,是for语句的特殊简化版本,在遍历数组跟集合时,更加方便快捷。
语法:
for(元素类型 元素变量 :遍历对象){
执行代码
}
比如:
import java.util.Arrays; public class foreachTest { public static void main(String[] args) { // 定义一个整型数组,保存成绩信息 int[] scores = { 89, 72, 64, 58, 93 }; System.out.println("使用for循环输出数组中的元素:"); for(int i = 0 ; i < scores.length ; i++ ){ System.out.println(scores[i]); } System.out.println(); System.out.println("使用foreach循环输出数组中的元素:"); // 使用foreach遍历输出数组中的元素 for ( int score : scores) { System.out.println(score); } } }
运行结果:
使用for循环输出数组中的元素:
89
72
64
58
93
使用foreach循环输出数组中的元素:
89
72
64
58
93
(三)Java中的二维数组
二维数组,指的就是一种特殊的一维数组,其中,它的元素成员就是一维数组。
语法:
1)声明数组并分配空间
数据类型[][] 数组名 = new 数据类型[行的个数][列的个数];
或者
数据类型[][] 数组名;
数组名 = new 数据类型[行的个数][列的个数];
比如: //定义一个5行4列的数组 int[][] sum = new int[5][4]; 或者 int[][] sum; sum = new int[5][4]; 2)赋值 二维数组与一维数组的赋值基本相同,均是通过下标来进行赋值的,***索引也是从零开始的呀!*** 语法:数组名[行索引][列索引]=值; 比如: //给3行8列的元素赋值 num[3][8] = 89; 也可以声明的同时进行赋值 数据类型[][] 数组名={{值1,值2....},{值1,值2....},{值1,值2....},{值1,值2..}}; 比如:int[][] scores= { {45,78,89},{23,45,25,67}}; 3)处理数组 二维数组跟一维数组的处理方式基本一样,只是二维数组多了一对下标而已。 比如:
//定义一个3行4列的二维数组 int num[][] ={ {4,56,7,34},{23,45,56,67},{12,13,15,7}}; //遍历行 for(int i = 0 ;i < num.length ; i++){ //遍历行中元素 for( int j = 0; j < num[i].length ; j++ ){ //输出每个元素 System.out.println(num[i][j]); } //换行实现 System.out.println(); }
/*需要了解的:在定义二维数组时也可以只指定行的个数,然后再为每一行分别指定列的个数。如果每行的列数不同,则创建的是不规则的二维数组,比如: */
运行结果:
1
2
3
编程小题:定义一个两行三列的二维数组 names 并赋值,使用二重循环输出二维数组中的元素。
public class HelloWorld { public static void main(String[] args) { // 定义两行三列的二维数组并赋值 String names[][]={{"tom","jack","mike"},{"zhangsan","lisi","wangwu"}}; // 通过二重循环输出二维数组中元素的值 for (int i = 0; i < names.length; i++) { for (int j = 0; j < names[i].length; j++) { System.out.println(names[i][j]); } System.out.println(); } } }
输出结果:
tom
jack
mike
zhangsan
lisi
wangwu
OK ,这下对数组这个渣渣的理解就很清楚了!!!
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 在命令行用 sort 进行排序
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树