最后,我们可以使用Map来替换原有的Switch语句。这可以通过调用Map中对应键的Runnable对象的run方法来实现。 intkey=1;// 假设这是我们需要处理的keymap.get(key).run(); 1. 2. 状态图 下面是一个简单的状态图,展示了使用Map代替Switch的过程: 定义Map为每个case添加操作替换Switch语句DefineMapAddOperationsReplace...
优化后:使用map public static Map<String, CardTypeCombineCycleTypeEnum> combineMap = new HashMap<>(); static { combineMap.put("WHITE_GOLD", WHITE_GOLD); combineMap.put("GOLD_MONTH", GOLD_MONTH); combineMap.put("GOLD_HALF_YEAR", GOLD_HALF_YEAR); combineMap.put("GOLD_YEAR", GOLD_YEAR...
在这一环节,我们将所有的操作类放入一个映射(Map)中,以便根据输入条件快速查找到对应的操作: importjava.util.HashMap;importjava.util.Map;// 主类publicclassSwitchReplacement{privatestaticfinalMap<String,Operation>operationsMap=newHashMap<>();static{operationsMap.put("A",newOperationA());// 将操作 A ...
packagexcc.mapTest;importjava.util.Map;/*** @Decription: 代替'if else' 和 'switch'的方法 * @Author: * @Date: * @Email: **/publicclassIfFunction<K>{privateMap<K, Function>map;/*** 通过map类型来保存对应的条件key和方法 * *@parammap a map*/publicIfFunction(Map<K, Function>map) {t...
代替if else和switch的方法 代码语言:java 复制 /** * 代替'if else' 和 'switch'的方法 */publicclassIfFunction<K>{privateMap<K,Function>map;/** * 通过map类型来保存对应的条件key和方法 * * @param map a map */publicIfFunction(Map<K,Function>map){this.map=map;}/** ...
摆脱switch 的一种可能选择是使用函数的 hashmap:private String stringMethod(final String action, final String source) { final Function<String, String> toLowerFunction = String::toLowerCase; final Function<String, String> toUpperFunction = String::toUpperCase; &nb...
HashMap 本质上具有 O(1) 性能,而开关状态可以具有 O(1) 或 O(log(n)),具体取决于编译器是否使用表开关或查找开关。 可以理解,如果 switch 语句是这样写的, switch (int) { case 1: case 2: case 3: case 4: default: } 那么它将使用表开关,并且显然比标准 HashMap 具有性能优势。但是如果 switch...
C1值编号的实现位于c1_ValueMap.hpp中。每个基本块对应一个ValueMap,由于支持全局值编号,为了避免后继基本块复制当前基本块的内容,ValueMap被组织成一个具有层级的哈希表,使用一个_nesting字段表示层级。 C1同时包含局部值编号和全局值编号。局部值编号发生在C1解释执行基本块的字节码构造的SSA指令中,如代码清单8-11...
模式匹配(Java 16、17 引入):模式匹配 (Pattern Matching):增强了instanceof和switch表达式,简化了...
Java语言程序设计— Java中集合类的使用—集合概述、Collection接口、List接口、Set、Queue接口、Map接口、JDK5.0新特性、JDK8.0新特性 程序员小灰灰 认真搬砖的人儿已经介绍了Java基础类库(Java语言程序设计— Java基础类库—System类与Runtime类、Math类与Random类、日期操作类、JDK7.0新特性——switch语句支持字符串类...