马士兵 JAVA视频教程-第05章_数组.doc

上传人:hs****ma 文档编号:543213503 上传时间:2024-02-15 格式:DOC 页数:13 大小:858KB
返回 下载 相关 举报
马士兵 JAVA视频教程-第05章_数组.doc_第1页
第1页 / 共13页
马士兵 JAVA视频教程-第05章_数组.doc_第2页
第2页 / 共13页
马士兵 JAVA视频教程-第05章_数组.doc_第3页
第3页 / 共13页
马士兵 JAVA视频教程-第05章_数组.doc_第4页
第4页 / 共13页
马士兵 JAVA视频教程-第05章_数组.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《马士兵 JAVA视频教程-第05章_数组.doc》由会员分享,可在线阅读,更多相关《马士兵 JAVA视频教程-第05章_数组.doc(13页珍藏版)》请在金锄头文库上搜索。

1、尚学堂科技_马士兵_JAVA视频教程_J2SE_5.0_第05章_数组 听课笔记 09.12.3- by LoveXForce第5章 数 组完成时间:2009年12月3日-2009年12月4日数组的内存布局与常见算法一、 概念1. 数组可以看成是多个相同类型数据组合,对这些数据的统一管理2. 数组变量属于引用类型,数组可以看成是对象,数组中的每个元素相当于该对象的成员变量3. 数组中的元素可以是任何数据类型,包括基本型和引用类型二、 一维数组声明:type var ; 或者 type var 例如:int a1 ; int a2;double b ;Person p1; /person对象的引

2、用 String s1 ; /String对象的引用注意:java语言中声明数组时不能指定其长度(数组中元素个数),例如 int a5; /非法三、 数组对象创建(内存分析)Java中使用关键字new创建数组对象:数组名 = new 数组元素的类型 数组元素的个数栈内存S NULL堆内存例如:Public class TestPublic static void main(String args )int s; S = new int5; For (int I = 0 ; I 5 ; i+)Java分配5个小格,自动做初始化,int类型堆内存0 00 10 20 30 4栈内存S *Si =

3、2*i+1; 1元素为引用数据类型的数组注意:元素为引用数据类型的数组中的每一个元素都需要实例化例如:栈内存days堆内存*public class Test public static void main(String args )Date days; Days = new Date3;for ( int I =0 ;i 3 ; i+ )days I = new Date(2004,12,i+1);*栈内存days堆内存NullNullnullclass Dateint year; int month ; int day;Date( int y, int m, int d)year = y

4、; month = m; day = d;栈内存days堆内存 *四、 数组初始化动态初始化:数组定义与数组元素分配空间和赋值的操作开始进行静态初始化:在定义数组的同时就为数组元素分配空间并赋值public class Test public static void main(String args )int a ;a = new int 3 ;a0 = 3 ; a1 = 9 ; a2 = 8;Date days ; Days = new Date3;Days0 = new Date(1,4,2004);Days0 = new Date(1,4,2004);Days0 = new Date(1

5、,4,2004);class Dateint year; int month ; int day;Date( int y, int m, int d)year = y ; month = m; day = d;public class Test public static void main(String args )int a = 3 ,9 ,8;Date days = new Date(1,4,2004),new Date(1,4,2004),new Date(1,4,2004);class Dateint year; int month ; int day;Date( int y, in

6、t m, int d)year = y ; month = m; day = d;数组元素的默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被安装成员变量的规则被隐式初始化public class Test public static void main(String args )int a = new int 5 ;Date days = new Date3;System.out.println( a3 );System.out.println( days2 );class Dateint year; int month ; int day;Date(

7、int y, int m, int d)year = y ; month = m; day = d;结果: 0null五、 数组元素的引用定义并用运算符new为之分配空间后,才可以引用数组中的每个元素,1. 数组元素的引用方式:arrayName index index为数组元素下标,可以是整形常量或整形表达式。a 3 ,b I ,c 6*i。数组元素下标从0开始;长度为n的数组的合法下标取值范围为 0 n-1。2. 每个数组都有一个属性length指明它的长度如a.length的值为数组a的长度(元素个数)。六、 小练习1数组小练习public class TestArray public

8、static void main(String args) int a = 2, 4, 6, 7, 3, 5, 1, 9, 8;/* for(int i=0; ia.length; i+) System.out.print(ai + ); */for(int i=0; iargs.length; i+) System.out.println(argsi); Java TestArray 23 567 Shit 23 567Shit注意:args 数组将命令行后的参数碍着打印出来 2算数程序public class TestArgs public static void main(String

9、args) /* for(int i=0; iargs.length; i+) System.out.println( args i );System.out.println(Usage: java Test n1 op n2); */ if(args.length3) System.out.println(Usage: java Test n1 op n2); System.exit(-1);/非正常退出 double d1 = Double.parseDouble(args0); /把args0强制转换为double型 double d2 = Double.parseDouble(args

10、2); double d = 0; if(args1.equals(+) d = d1+d2; else if(args1.equals(-) d = d1-d2; else if(args1.equals(x) d = d1*d2; else if(args1.equals(/) d = d1/d2; else System.out.println(Error operator!); System.exit(-1); System.out.println(d);/健壮:在输入数值的地方用try catch语句捕获异常3排序算法:数字(基本类型)排序NumSort.Javapublic cla

11、ss NumSort public static void main(String args) int a = new intargs.length;for (int i=0; iargs.length; i+) ai = Integer.parseInt(argsi); /将args数组里的数据转换成int型放到a里面print(a);/调用打印a 数组值的方法selectionSort(a);/调用选择排序方法print(a);/调用打印a 数组值的方法private static void selectionSort(int a) for(int i = 0 ;ia.length ; i

12、+)for(int j=i+1 ;ja.length;j+)if(aj ai )int temp = ai;ai = aj;aj = temp;/* int k, temp;for(int i=0; ia.length; i+) k = i;for(int j=k+1; ja.length; j+) if(aj ak) k = j;if(k != i) temp = ai;ai = ak;ak = temp;*/ /优化算法,每次循环只调换一次 private static void print(int a) for(int i=0; ia.length; i+) System.out.print(ai + );/打印a数组里面的值System.out.println();4排序算法:对引用类型(某个类的对象)进行排 TestDateSort.java 分析过程:Date a返回值public static Date bubbleSort(Date a) /返回值可也是数组类型 就是返回指向一块堆内存的空间数组作为返回值:public class TestDateSort publ

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号