枚举类型(也称为枚举)为定义一组可以赋给变量的命名整数常量提供了一种有效的方法。(个人理解:枚举是提前声明好的一组具有特定值的数据类型,用于选择的场合,有程序提供的选项供用户选择时使用,相当于控件中的listbox)例如在输入信息中人的性别只有男和女,为避免不必要的错误,提前枚举出性别的选项:Public enum Gender {男,女}
枚举的优点: 1、枚举可以使代码更易于维护,有助于确保给变量指定合法的、期望的值。 2、枚举使代码更清晰,允许用描述性的名称表示整数值,而不是用含义模糊的数来表示。 3、枚举使代码更易于键入。在给枚举类型的实例赋值时,VS.NET IDE会通过IntelliSense弹出一个包含可接受值的列表框,减少了按键次数,并能够让我们回忆起可能的值
4.使数据规范,便于统计和分类,防止出现“同意多词”的现象,防止数据的乱输入。
结构:public struct Person{public string _name; publicint _age;public gender _gender} 一次性声明多个不同的变量时使用。
定义:存储同一种数据类型的多个元素的容器,Array 类是支持数组的语言实现的基类。数组中通过“索引”或“下标”来区分数组元素,下标从0开始,数组的声明格式:类型[ ] 数组名
数组的初始化:是指为数组分配内存的过程。
A:动态初始化
只给长度,系统给出默认值
举例:int[]arr = new int[3];
B:静态初始化
给出值,系统决定长度
举例:int[]arr = new int[]{1,2,3};
简化版:int[]arr = {1,2,3};
对数组的遍历:使用foreach循环,数组的遍历就是对数组的所有元素逐个进行访问。Foreach(类型 变量名 in 数组名){循环体};使用for循环,for(int i=0,i< array.length,i++){ S+= array [i]; }
比较:foreach语句总是遍历整个数组,如果只需要遍历某个部分,或者反向遍历,使用for循环;foreach语句的循环只是访问数组中的每个元素的值,作为一个只读属性,如果要写入或者修改,或者需要知道元素对应的索引则需要for语句。
for循环遍历
public static void printArray(int[] arr) { for(int x=0; x<arr.length; x++) { System.out.println(arr[x]); } }数组的逆序输出:
方式1: public static void reverse(int[] arr) { for(int x=0; x<arr.length/2; x++) { int temp = arr[x]; arr[x] = arr[arr.length-1-x]; arr[arr.length-1-x] = temp; } } 方式2: public static void reverse(int[] arr) { for(int start=0,end=arr.length-1; start<=end; start++,end--) { int temp = arr[start]; arr[start] = arr[end]; arr[end] = temp; } }字符串的逆序输出:
public static void main(String[] args) { //方法1 用reverse方法反转 StringBuffer sb=new StringBuffer(); sb.append("abc"); System.out.println("反转后:"+sb.reverse()); //方法2 String str="abc"; char[] charArr = str.toCharArray(); //将字符串转换成数组 for(int i = charArr.length;i>0;i--){ System.out.print("反转后:"+charArr[i-1]); } }注意:数组需要在堆内存开辟空间存储值,引用类型需要在堆内存运行,在堆内存的数据使用完毕后在垃圾回收器空闲时回收,值类型存放在栈内存,栈内存的数据使用完毕就消失。数组中的不同数组元素的类型有不同的默认值
byte,short,int,long 0
float,double 0.0
char' \u0000'
boolean false
引用类型 null
Array和ArrayList的区别 Array的大小是固定的,而ArrayList的大小可根据需要自动扩充;array中一次只能获取或设置一个元素的值,而ArrayList中允许添加插入或移除某个范围的元素,array下限可以自定义,而ArrayList的下限始终为零;array可以具有多个维度(数组可以有二维和多维,但集合只能是一维的),但ArrayList只能是一维的;array位于system命名空间中,而ArrayList是提供的用于数据存储和检索的专用类,ArrayList位于system.collections命名空间中。 [] 是针对特定类型、固定长度的。 List 是针对特定类型、任意长度的。 Array 是针对任意类型、固定长度的。 ArrayList 是针对任意类型、任意长度的。
篇幅有限,未完待续……
