枚举类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
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 完成微博外链备案,微博中直接可以打开园子的链接
· 推荐 3 种 .NET Windows 桌面应用程序自动更新解决方案
· .NET 10 支持Linux/Unix 的Shebang(Hashbang)
· 一个基于 .NET 开源、模块化 AI 图像生成 Web 用户界面
· 上周热点回顾(6.9-6.15)