2022年马士兵JAVA视频教程-第章_数组 .pdf
《2022年马士兵JAVA视频教程-第章_数组 .pdf》由会员分享,可在线阅读,更多相关《2022年马士兵JAVA视频教程-第章_数组 .pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、尚学堂科技 _马士兵 _JAVA视频教程 _J2SE_5.0_ 第 05 章_数组 听课笔记09.12.3- by LoveXForce 1 第5章数 组完成时间 :2009 年 12 月 3 日-2009年 12 月 4 日数组的内存布局与常见算法一、概念1.数组可以看成是多个相同类型数据组合,对这些数据的统一管理2.数组变量属于引用类型,数组可以看成是对象,数组中的每个元素相当于该对象的成员变量3.数组中的元素可以是任何数据类型,包括基本型和引用类型二、一维数组声明: type var ; 或者 type var 例如:int a1 ; int a2; double b ; Person
2、p1; /person 对象的引用String s1 ; /String 对象的引用注意:java语言中声明数组时不能指定其长度(数组中元素个数 ),例如 int a5; / 非法三、数组对象创建(内存分析)Java中使用关键字 new 创建数组对象 : 数组名 = new 数组元素的类型数组元素的个数 例如: Public class Test Public static void main(String args ) int s; S = new int5; For (int I = 0 ; I 5 ; i+) Si = 2*i+1; 栈内存S NULL 堆内存栈内存S * 堆内存0 00
3、 10 20 30 4Java 分配5 个小格,自动做初始化, int类型名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - 尚学堂科技 _马士兵 _JAVA视频教程 _J2SE_5.0_ 第 05 章_数组 听课笔记09.12.3- by LoveXForce 2 元素为引用数据类型的数组注意:元素为引用数据类型的数组中的每一个元素都需要实例化例如: public class Test public static void ma
4、in(String args ) Date days; Days = new Date3; for ( int I =0 ;i 3 ; i+ ) days I = new Date(2004,12,i+1); class Date int year; int month ; int day; Date( int y, int m, int d) year = y ; month = m; day = d; 四、数组初始化动态初始化: 数组定义与数组元素 分配空间和赋值的操作 开始进行静态初始化: 在定义数组的同时就为数组元素分配空间并赋值public class Test public sta
5、tic 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,4,2004); class Date int year; int month ; int day; Date( int y, int m, int d) year = y ; month = m; day = d; public cl
6、ass 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 Date int year; int month ; int day; Date( int y, int m, int d) year = y ; month = m; day = d; 栈内存days * 堆内存栈内存days * 堆内存Null Null null 栈内存days * 堆内存名师资料总结 -
7、- -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - - - - - 尚学堂科技 _马士兵 _JAVA视频教程 _J2SE_5.0_ 第 05 章_数组 听课笔记09.12.3- by LoveXForce 3 数组元素的默认初始化 :数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被安装成员变量的规则被隐式初始化public class Test public static void main(String args ) int a =
8、new int 5 ; Date days = new Date3;System.out.println( a3 ); System.out.println( days2 ); class Date int year; int month ; int day; Date( int y, int m, int d) year = y ; month = m; day = d; 结果: 0 null 五、数组元素的引用定义并用运算符new 为之分配空间后,才可以引用数组中的每个元素,1.数组元素的引用方式:arrayName index index 为数组元素下标,可以是整形常量或整形表达式。a
9、3 ,b I ,c 6*i。数组元素下标从 0 开始;长度为 n 的数组的合法下标取值范围为0 n-1。2.每个数组都有一个 属性 length 指明它的长度如 a.length 的值为数组 a 的长度(元素个数)。六、小练习1 数组小练习public class TestArray public 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;
10、 i+) System.out.println(argsi); Java TestArray 23 567 Shit 23 567 Shit 注意: args 数组将命令行后的参数碍着打印出来名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 13 页 - - - - - - - - - 尚学堂科技 _马士兵 _JAVA视频教程 _J2SE_5.0_ 第 05 章_数组 听课笔记09.12.3- by LoveXForce 4 2 算数程序public class TestA
11、rgs public static void main(String 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 强制转换为 do
12、uble型double d2 = Double.parseDouble( args2); 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
13、 语句捕获异常3 排序算法 :数字(基本类型 )排序 NumSort.Javapublic class 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
14、static void selectionSort(int a) for(int i = 0 ;ia.length ; i+) 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; */ / 优化算法,每次循环只调换一次 p
15、rivate static void print(int a) for(int i=0; ia.length; i+) System.out.print(ai + ); /打印 a数组里面的值System.out.println(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 13 页 - - - - - - - - - 尚学堂科技 _马士兵 _JAVA视频教程 _J2SE_5.0_ 第 05 章_数组 听课笔记09.12.3- by LoveXForce 5 4
16、排序算法 :对引用类型 (某个类的对象 )进行排 TestDateSort.java 分析过程:public static Date bubbleSort(Date a) / 返回值可也是数组类型就是返回指向一块堆内存的空间数组作为返回值 : public class TestDateSort public static void main(String args) Date days = new Date5; days0 = new Date(2006, 5, 4); days1 = new Date(2006, 7, 4); days2 = new Date(2008, 5, 4); da
17、ys3 = new Date(2004, 5, 9); days4 = new Date(2004, 5, 4); Date d = new Date(2006, 7, 4); String str = String.valueOf(d); /str = d.toString(); bubbleSort(days); for(int i=0; i=1;i-) for(int j = 0;j 0) Date temp = aj; aj=aj+1; aj+1=temp; return a; public static int binarySearch(Date days, Date d) if (
18、days.length=0) return -1; int startPos = 0; int endPos = days.length-1; int m = (startPos + endPos) / 2; while(startPos 0) startPos = m + 1; if(pare(daysm) date.year ? 1 : year date.month ? 1 : month date.day ? 1 : day date.day ? -1 : 0; public String toString() return Year:Month:Day - + year + - +
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年马士兵JAVA视频教程-第章_数组 2022 士兵 JAVA 视频教程 数组
限制150内