《《数组与枚举》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《数组与枚举》PPT课件.ppt(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数数组属于属于引用型引用型变量量,创建数建数组需要需要经过声明数声明数组和和为数数组分配分配变量量2 2个步个步骤声明一声明一维数数组有下列两种格式:有下列两种格式:数数组的元素的元素类型型 数数组名名;数数组的元素的元素类型型 数数组名名;声明二声明二维数数组有下列两种格式:有下列两种格式:数数组的元素的元素类型型 数数组名名 ;数数组的元素的元素类型型 数数组名名;注意:与注意:与C/C+不同,不同,Java不允许在声明数组中的方括不允许在声明数组中的方括号内号内指定数组元素的个数,如不许指定数组元素的个数,如不许 int a12为数数组分配元素的格式如下:分配元素的格式如下:数数组名名
2、=new =new 数数组元素的元素的类型型 数数组元素的个数元素的个数;如如float boy;float boy;boy=new float4;boy=new float4;声明数声明数组和和创建数建数组可以一起完成,如:可以一起完成,如:float boy=new float4;float boy=new float4;二二维数数组的的创建:建:int mytwo ;int mytwo ;mytwo=new int34;mytwo=new int34;注意:构成二注意:构成二维数数组的一的一维数数组不必有相同的不必有相同的长度度如:如:int a =new int3;int a =new
3、 int3;a0=new int6;a0=new int6;a1=new int12;a1=new int12;a2=new int8;a2=new int8;一一维数数组通通过索引符索引符访问自己的元素自己的元素需要注意的是需要注意的是索引从索引从0 0开始开始二二维数数组也通也通过索引符索引符访问自己的元素自己的元素数数组的元素的个数称作数的元素的个数称作数组的的长度。度。对于一于一维数数组,“数数组名名.length.length”的的值就是就是数数组中元中元素的个数素的个数;对于二于二维数数组“数数组名名.length.length”的的值是它含有的是它含有的一一维数数组的个数的个数f
4、loat a=new float12;float a=new float12;int b =new int36;int b =new int36;a.lengtha.length为1212b.lengthb.length为3 3创建数建数组后,系后,系统会会给数数组的每个元素一个默的每个元素一个默认的的值,如,如,floatfloat型是型是0.00.0在声明数在声明数组的同的同时也可以也可以给数数组的元素一个初始的元素一个初始值如如float boy=21.3f,23.5f,1.2f,29.3ffloat boy=21.3f,23.5f,1.2f,29.3f 也可以直接用若干个一也可以直接用
5、若干个一维数数组初始化一个二初始化一个二维数数组,这些一些一维数数组的的长度不尽相同度不尽相同int a =1,1,1,1,2,1,1,3,3,1int a =1,1,1,1,2,1,1,3,3,1数数组属于引用型属于引用型变量量,因此两个相同因此两个相同类型的数型的数组如如果具有相同的引用,它果具有相同的引用,它们就有完全相同的元素就有完全相同的元素如果使用了下列如果使用了下列赋值语句(句(a a和和b b的的类型必型必须相同):相同):a=b;a=b;那么,那么,a a中存放的引用和中存放的引用和b b的相同,的相同,这时系系统将将释放放最初分配最初分配给数数组a a的元素,使得的元素,使
6、得a a的元素和的元素和b b的元素的元素相同相同说明:和明:和类对象的象的赋值原理一原理一样例例7-17-1public class Example7_1 public class Example7_1 public static void main(String args)public static void main(String args)int a=1,2,3,4;int a=1,2,3,4;int b=100,200,300;int b=100,200,300;(数数组a a的元素个数的元素个数=+a.length);=+a.length);(数数组b b的元素个数的元素个数=+b
7、.length);=+b.length);(数数组a a的引用的引用=+a);=+a);(数数组b b的引用的引用=+b);=+b);System.out.println(a=b System.out.println(a=b的的结果是果是+(a=b);+(a=b);a=b;a=b;(数数组a a的元素个数的元素个数=+a.length);=+a.length);(数数组b b的元素个数的元素个数=+b.length);=+b.length);System.out.println(a=b System.out.println(a=b的的结果是果是+(a=b);+(a=b);System.out.
8、println(a0=+a0+,a1=+a1+,a2=+a2);System.out.println(a0=+a0+,a1=+a1+,a2=+a2);System.out.print(b0=+a0+,b1=+b1+,b2=+b2);System.out.print(b0=+a0+,b1=+b1+,b2=+b2);7.2.1 7.2.1 基于循基于循环语句的遍句的遍历JDK1.5JDK1.5中新增的中新增的forfor循循环结构,构,该结构适合于数构适合于数组类型型for(for(声明循声明循环变量:数量:数组的名字的名字)例例7-27-2public class Example7_2 publ
9、ic class Example7_2 public static void main(String args)public static void main(String args)int a=1,2,3,4;int a=1,2,3,4;char b=a,b,c,d;char b=a,b,c,d;for(int n=0;na.length;n+)/for(int n=0;na.length;n+)/传统方式方式 System.out.println(an);System.out.println(an);for(int n=0;nb.length;n+)/for(int n=0;n=0)if(
10、index=0)System.out.println(number+System.out.println(number+和数和数组中索引中索引为+index+index+的元素的元素值相同相同););else else System.out.println(number+System.out.println(number+不与数不与数组中任何元素中任何元素值相同相同););(是否是否继续输入整数?入整数?输入任何非整数即可入任何非整数即可结束束););说明:明:ScannerScanner类中中nextInt()nextInt()方法用于从方法用于从键盘输入一个整数入一个整数hasNextIn
11、t()hasNextInt()用于判断用于判断输入的是否是整数,若是,入的是否是整数,若是,则返回返回值为truetrue,若不是,返回,若不是,返回值为falsefalse7.5.1 7.5.1 枚枚举类型的定型的定义枚枚举类型的定型的定义包括枚包括枚举声明和枚声明和枚举体,体,语法格式法格式如下:如下:enum enum 枚枚举名名 常量列表常量列表 枚枚举体中的内容是用逗号分隔的字符序列,称体中的内容是用逗号分隔的字符序列,称为枚枚举类型的常量。型的常量。enum Seasonenum Season spring,summer,autumn,winter spring,summer,au
12、tumn,winter 声明了一个枚声明了一个枚举类型后,就可以用型后,就可以用该枚枚举类型的枚型的枚举名声明一个枚名声明一个枚举变量,例如:量,例如:Season x;Season x;声明了一个枚声明了一个枚举变量量x x。枚。枚举变量量x x只能取只能取值枚枚举类型中的常量。型中的常量。通通过使用枚使用枚举名和名和“.”运算符运算符获得枚得枚举类型中的常量,例如:型中的常量,例如:x=Season.spring;x=Season.spring;Weekday.javaWeekday.javapublic enum Weekday public enum Weekday 星期一星期一,星期
13、二星期二,星期三星期三,星期四星期四,星期五星期五,星期六星期六,星期日星期日 Example7_6.javaExample7_6.javapublic class Example7_6public class Example7_6 public static void main(String args)public static void main(String args)Weekday x=Weekday.Weekday x=Weekday.星期日星期日;if(x=Weekday.if(x=Weekday.星期日星期日)System.out.println(x);System.out.pr
14、intln(x);(今天我休息今天我休息););1 1使用使用forfor语句遍句遍历枚枚举常量常量枚枚举类型可以用如下形式型可以用如下形式返回一个一返回一个一维数数组:枚枚举类型的名字型的名字.values();.values();该一一维数数组元素的元素的值和和该枚枚举类型中常量依次相型中常量依次相对应Weekday a=Weekday.values();Weekday a=Weekday.values();a0a0至至a6a6的的值依次是:星期一,星期二,依次是:星期一,星期二,星期日星期日例例7-77-7enum Color enum Color 红,黄黄,绿 public class
15、 Example7_7 public class Example7_7 public static void main(String args)public static void main(String args)for(Color a:Color.values()for(Color a:Color.values()for(Color b:Color.values()for(Color b:Color.values()if(a!=b)if(a!=b)System.out.print(a+,+b+|);System.out.print(a+,+b+|);2 2switchswitch语句中使用
16、枚句中使用枚举常量常量JDK1.5JDK1.5后的版本允后的版本允许switchswitch语句中表达式的句中表达式的值是枚是枚举类型的常量型的常量enum Fruit enum Fruit 苹果苹果,梨梨,香蕉香蕉,西瓜西瓜,芒果芒果 public class Example7_8 public class Example7_8 public static void main(String args)public static void main(String args)double price=0;double price=0;boolean show=false;boolean show
17、=false;for(Fruit fruit:Fruit.values()for(Fruit fruit:Fruit.values()switch(fruit)switch(fruit)case case 苹果苹果:price=1.5;:price=1.5;show=true;show=true;break;break;case case 芒果芒果:price=6.8;:price=6.8;show=true;show=true;break;break;case case 香蕉香蕉:price=2.8;:price=2.8;show=true;show=true;break;break;default:show=false;default:show=false;if(show)if(show)System.out.println(fruit+500 System.out.println(fruit+500克的价格:克的价格:+price+price+元元););
限制150内