- 前言
- 枚举类型
- 1. 枚举类型的创建:
- 2. 枚举变量:
- ArrayList -- 动态数组
- 1. 数组创建:
- 2. 数组操作:
本系列的内容大都是源自《Java核心技术》第10版(以下称《核心技术》)以及菜鸟教程中的内容,该文章主要记录一些当前过程比较重要,但不至于专门写一篇的一些内容(本篇持续更新~)。
以下是本篇文章正文内容,下面案例可供参考
枚举类型C++中的枚举类型可以看作是整数集的扩展,用名字来增强辨识度的常量。但在Java中,枚举类型是对象的实例化,也可以拥有自己的域、构造函数、类方法等等,因此是比C++中的枚举更加灵活的结构。值得注意的是,所有的枚举类型都继承自Enum类。
1. 枚举类型的创建:public enum Size {
SMALL("S"), MEDIUM("M"), LARGE("L"), EXTRALARGE("EL");
private String abbr;
private Size(String abbr){
this.abbr = abbr;
}
public String getAbbr(){return abbr;}
}
上述代码定义了Size枚举类型,在类型中枚举了SMALL, MEDIUM, LARGE, EXTRALARGE四个枚举量,并且枚举类拥有abbr这个属性,拥有构造函数,还拥有一个类方法用于获取属性值。
2. 枚举变量:枚举类型也是一种类,所以枚举变量的创建过程与普通的对象变量是类似的。但由于枚举变量的取值空间是我们自己定义的,因此对其赋值需要用比较特殊的方法Enum.valueOf(),利用与枚举实例相同名称的字符串来为其指定需要的值。
Scanner in = new Scanner(System.in);
System.out.print("Enter a size: (SMALL, MEDIUM, LARGE, EXTRALARGE): ");
String input = in.next().toUpperCase();
// 根据数据的文本信息构造枚举类对象
Size size = Enum.valueOf(Size.class, input);
上述过程利用input创建Size类对象,当我们使用一个Size中不存在的实例名称时会报错
至于如何判断枚举对象是否等于特定值,与普通的比较并无差异,注意枚举类中的实例使用Class.Instance进行访问
if(size == Size.EXTRALARGE){
System.out.println("Well size!");
}
ArrayList – 动态数组
1. 数组创建:
ArrayListint_arr = new ArrayList<>(100);
上述代码创建了一个容量(Capacity)为100,类型为int的动态数组。需要注意:
- 容量是指数组能够存储对象个数的最大值,若超过容量,则会重新为数组分配空间。
- 动态数组的另一个属性是size,表示当前数组中存储了多少元素
- 动态数组的类型参数必须是class,而不能是基本类型,因此这里使用了自动装箱的类型Integer,而不是int
动态数组的操作不如对象数组方便,通常使用以下方法:
- add(x):在数组末尾添加元素
- add(n, e):在数组的第n个位置插入元素e
- set(n, e):将第n个元素设为e
- size():返回数组当前存储的元素个数
- toArray():将动态数组变为对象数组(对象数组的大小与动态数组的size相同)
- remove(n):将位置n的元素移除



