网站路径问题,wordpress导航页美观,制作网站联系方式,个人怎么做微信公众号和微网站吗前些天发现了一个巨牛的人工智能学习网站#xff0c;通俗易懂#xff0c;风趣幽默#xff0c;忍不住分享一下给大家。点击跳转到教程。
ImmutableMap 的作用就是#xff1a;可以让java代码也能够创建一个对象常量映射#xff0c;来保存一些常量映射的键值对。
分析以下情…前些天发现了一个巨牛的人工智能学习网站通俗易懂风趣幽默忍不住分享一下给大家。点击跳转到教程。
ImmutableMap 的作用就是可以让java代码也能够创建一个对象常量映射来保存一些常量映射的键值对。
分析以下情景来具体讨论这个的好处。
以下是在js前台的代码假设现在有需求如下 根据数据库存的某个key字段来获得不同的提示名字。有以下3种处理方法 1用 多个 if else 语句只要新添加个字段你就得添加个 if else ,差评 2用 switch case 语句只要新添加个字段你就得添加个 case ,差评 3用 对象映射 方法如下所示。 新建字段只需要添加一行就好 ,好评
下面比较几种实现方法的
1.if else 语句和switch case 是一个水平的东西。
function getDevName(assetSubType){switch(assetSubType){case router:assetSubType 路由器;break;case switchboard:assetSubType 交换机;break;case virtualMac:assetSubType 虚拟机;break;case physicalMac:assetSubType 物理机;break;case firewall:assetSubType 防火墙;break;case secretMac:assetSubType 加密机;break;case storage:assetSubType 存储;break;case host:assetSubType 主机;break;case safetyEq:assetSubType 安全设备;break;case other:assetSubType 其它;break;default:assetSubType assetSubType;}return assetSubType;
}
然后在其他地方调用的时候具体调用。 getDevName(assetSubType); 看麻烦不。现在若要增加一个你还得继续修改代码添加一对 if else 或者 switch case。
3.然后是换成对象然后以key value的形式去获得值。
var assetSubTypeKeyValueMap {router: 路由器,switchboard: 交换机,virtualMac: 虚拟机,physicalMac: 物理机,firewall: 防火墙,secretMac: 加密机,storage: 存储,host: 主机,safetyEq: 安全设备,other: 其它
};
然后再看这个的调用方式。
function getSubTypeName(assetSubType) {return assetSubTypeKeyValueMap[assetSubType];
}
性能优化的人为什么就那么牛逼呢。
再看个类似的例子
var inputDefObj {30: IP地址或地址段,31: 端口号或范围,32: IP地址或地址段,33: 端口号或范围,34: 代码值,38: 探针名称,39: 网络协议号(protocol),40: ipv6源IP(ipv6_src_addr),41: ipv6目标IP(ipv6_dst_addr),42: 网络协议名称(protocol_map),43: 输入接口snmp(input_snmp),};
//具体用法
inputDefault.prop(placeholder, inputDefObj[key]);//key即为前面的数字以此来获得后面的提示语。
js里面可以很简单的以keyvalue的形式建立常量对象然后可以很方便的用key得到value。
然而java的map也是可以的。具体怎么实现就看实例
package com.lxk.guavaTest;import com.google.common.collect.ImmutableMap;import java.util.Map;/*** 定义一些常量Map?,?* p* Created by lxk on 2016/11/17*/
interface ConstantMap {MapInteger, String INTEGER_STRING_MAP new ImmutableMap.BuilderInteger, String().put(30, IP地址或地址段).put(31, 端口号或范围).put(32, IP地址或地址段).put(33, 端口号或范围).put(34, 代码值).put(38, 探针名称).put(39, 网络协议号(protocol)).put(40, ipv6源IP(ipv6_src_addr)).put(41, ipv6目标IP(ipv6_dst_addr)).put(42, 网络协议名称(protocol_map)).put(43, 输入接口snmp(input_snmp)).build();
}/*** guava ImmutableMap 测试实例* p* Created by lxk on 2016/11/14*/
public class ImmutableMapTest {public static void main(String[] args) {immutableMapTest();}/*** 测试 guava ImmutableMap*/private static void immutableMapTest() {Integer key 30;System.out.println(key key 的提示语是 ConstantMap.INTEGER_STRING_MAP.get(key));}
}
这个map里面key和value和我们用map是一样的可以任意对象。 方便在java代码里面操作使得switch case又长又啰嗦又不好维护的if else语句变得简单愉快。
具体只有用了才知道。
这个算是编程思想上的进步吧 转自https://blog.csdn.net/qq_27093465/article/details/53212577