LeetCode 454. 4Sum II
543 2023-04-03 04:23:33
/** * 枚举使用 enum 这个关键字来定义 */public enum Size { // 值一般是大写的字母,多个值之间以逗号分隔 // 枚举值的定义需要放在最上面,枚举值写完之后,要以分号(; )结尾,然后才能写其他代码 SMALL(1,"S","小号"), MEDIUM(2,"M","中号"), LARGE(3,"L","大号"); private int id; private String abbr; private String title; private Size(int id,String abbr, String title) { this.id = id; this.abbr = abbr; this.title = title; } public int getId() { return id; } public String getAbbr() { return abbr; } public String getTitle() { return title; } public static Size fromAbbr(String abbr){ for (Size size : Size.values()){ if(size.getAbbr().equals(abbr)){ return size; } } return null; }}
public class TestUtil { public static void main(String[] args) { enumTest(); onChose(Size.SMALL); enumTestTwo(); } public static void enumTest(){ Size sSize = Size.SMALL; Size mSize = Size.MEDIUM; Size lSize = Size.LARGE; System.out.println(mSize.toString()); // toString 方法返回其字面值 MEDIUM System.out.println(mSize.name()); // name()方法,返回值与toString()一样 MEDIUM System.out.println(mSize.ordinal()); // ordinal()表示枚举值在声明时的顺序,从0开始 System.out.println(sSize.compareTo(lSize)); // 其实就是比较ordinal的大小 // 枚举变量可以使用equals和==进行比较,结果是一样的 System.out.println(Size.MEDIUM==mSize); System.out.println(Size.MEDIUM.equals(mSize)); System.out.println(Size.valueOf("LARGE").name()); // valueOf 返回字符串对应的枚举值 for (Size size : Size.values()) { // values 返回一个包括所有枚举值的数组 } } public static void onChose(Size size){ // 在switch语句内部,枚举值不能带枚举类型前缀,枚举值会被转换为其对应的ordinal值 switch (size) { case SMALL: System.out.println("chose small"); break; case MEDIUM: System.out.println("chose medium"); case LARGE: System.out.println("chose large"); } } public static void enumTestTwo(){ Size s = Size.SMALL; Size m = Size.MEDIUM; Size l = Size.fromAbbr("L"); System.out.println(s.getId()); System.out.println(m.getAbbr()); System.out.println(l.getTitle()); }}