枚举类enum
1枚举基础
1 import java.util.*; 2 3 public class MyTest { 4 /** 5 * 枚举实例 6 * 1.不能在其他类中实例化 7 * 2.实例对象默认调用构造方法初始化。 8 * 3.switch语句里面可用枚举 9 * 1.并不是toString方法 10 * 2.case:只能能是枚举实例 11 * 3.不需要写枚举类. 12 * 4. 13 * 14 * 15 * 回顾: 16 * 父类的toString只会输出父类的值 17 */ 18 public static void test() { 19 // MyEnum e = new MyEnum(); 20 System.out.println(MyEnum.GREEN); 21 22 switch (MyEnum.BLUE) { 23 case RED -> System.out.println("红色"); 24 case BLUE -> System.out.println("蓝色"); 25 case GREEN -> System.out.println("绿色"); 26 default -> System.out.println("其它颜色"); 27 } 28 switch (MyEnum.BLUE) { 29 case RED : System.out.println("红色"); 30 break; 31 case BLUE : System.out.println("蓝色");break; 32 case GREEN : System.out.println("绿色");break; 33 default : System.out.println("其它颜色");break; 34 } 35 int num = 9; 36 //回顾 37 Random random = new Random(); 38 int temp =switch (num){ 39 case 10-> 100; 40 default -> random.nextInt(60,81); 41 }; 42 System.out.println(temp); 43 44 // Student student1 = new Student(); 45 // System.out.println(student1);//张三,返回的是父类的name 46 switch (MyEnum.GREEN.getValue()) { 47 case "红色"-> System.out.println("红色"); 48 case "绿色"-> System.out.println("绿色"); 49 case "蓝色"-> System.out.println("蓝色"); 50 default -> System.out.println("其它颜色"); 51 } 52 53 switch (MyEnum.BLUE.toString()){ 54 case "白色"-> System.out.println("白色"); 55 default -> System.out.println("其他颜色"); 56 } 57 } 58 59 /** 60 * 枚举类 61 * 枚举类的静态成员和方法是属于枚举类的 62 */ 63 public static void test1(){ 64 // MyEnum.GREEN.show(); 65 // System.out.println(MyEnum.GREEN.c); 66 } 67 68 /** 69 * Enum类 70 * 遍历枚举实例 71 */ 72 public static void test2(){ 73 //得到所有枚举实例 74 MyEnum[] values = MyEnum.values(); 75 76 //通过流遍历 77 //forEach是消费者 78 //元素类型就是枚举实例 79 Arrays.stream(values).forEach((a)->{ 80 System.out.println(a.getValue()); 81 }); 82 //通过for循环遍历 83 for (int i =0,len=values.length;i<len;i++){ 84 System.out.println(values[i].getValue()); 85 } 86 //返回索引 87 System.out.println(MyEnum.GREEN.ordinal()); 88 //字符串变为枚举实例 89 System.out.println(MyEnum.valueOf("GREEN")); 90 System.out.println(MyEnum.RED.compareTo(MyEnum.BLUE));//-2 91 } 92 93 /** 94 * 枚举工具类 95 * 怎么将枚举元素放到特殊容器中 96 */ 97 public static void test3(){ 98 /** 99 * EnumMap<K extends Enum<K>, V> 100 */ 101 EnumMap<MyEnum,String> map = new EnumMap(MyEnum.class); 102 Map<MyEnum,String> hashMap = new HashMap<>(); 103 map = new EnumMap<>(hashMap); 104 map = new EnumMap<>(map); 105 Enum[] enums = MyEnum.values(); 106 //EnumSet<E extends Enum<E>> 是一个抽象类 107 //出发点容易错 108 // EnumSet<MyEnum> set = new EnumSet<>(MyEnum.class,enums); 109 EnumSet<MyEnum> set1 =EnumSet.of(MyEnum.RED,MyEnum.BLUE); 110 EnumSet<MyEnum> set2 =EnumSet.allOf(MyEnum.class); 111 112 } 113 114 public static void main(String[] args) { 115 // test2(); 116 } 117 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)