key

Map,Map.Entry<K,V>源码分析

Deadly 提交于 2020-03-02 02:15:15
一、简单介绍。 1、Map是java中的接口,Map.Entry是Map的一个内部接口。 2、Map提供了一些常用方法,如keySet()、entrySet()等方法 ,keySet()方法返回值是Map中key值的集合;entrySet()的返回值也是返回一个Set集合,此集合的类型为Map.Entry。 3、Map.Entry是Map声明的一个内部接口,此接口为泛型,定义为Entry<K,V>。它表示Map中的一个实体(一个key-value对)。接口中有getKey(),getValue方法。 二、源码分析。 Map源码(包含Entry的定义): package java.util; public interface Map<K,V> { int size(); boolean isEmpty(); boolean containsKey(Object key); boolean containsValue(Object value); V get(Object key); V put(K key, V value); V remove(Object key); void clear(); Set<K> keySet(); Collection<V> values(); Set<Map.Entry<K, V>> entrySet(); interface Entry<K,V>

2020/03/01 03-Django模板DTL使用

…衆ロ難τιáo~ 提交于 2020-03-01 23:46:32
模板技术本质上就是静态的html,为了让里面的内容可以动态变化,把里面变成一些填空题,然后准备一下数据,通过特殊手段传进去,这样就可以通过问系统加载到模板,把里面的内容填充好。 在python中需要把这些写好的模板放在一个特殊的目录中,这就是模板目录 写个dirs,将这个目录作为整个模板的搜索路径,但是搜索完整个目录还搜索其他吗,就看你要不要用app_dirs了,如果写了,就会到你已经注册的应用当中搜索模板。 如果一般不需要为这个应用单独写模板的话,上面这个目录的模板也就基本够用了,大多数项目都是把模板集中放这里了 这是模板的搜索路径 模板的本质就是给html,掏空,往里面填数据,如何找数据,第一种是给个字典按key来找。 两个大括号表示其实是用正则,来把你要填写的内容插入进去,形成一个大的字符串,模板技术本质上是这样的。 PHP.JSP,ASP全是这样的开发方式,在这里叫模板技术。 这种有一个坏处就是前后端不分离 模板处理分两步,第一步跟文件系统打交道,找到模板。第二步渲染,所谓渲染就是把这些空填满,填满之后该response,response。本质上要return httpresponse response之前必须先告诉对方responseheader是什么,最后再发body,body有可能很大 快捷函数render,讲模板的时候可能会用到httpresponse,render

Solr评分修改

这一生的挚爱 提交于 2020-03-01 15:56:48
最近要提供一个地点查找的API给IOS组调用,其主要需求是通过距离,星级和地标的星级三者排序,距离越短和星级越高的地点优先显示 关于距离排序可以看这篇文章: http://blog.csdn.net/awj3584/article/details/11760757 要是实现方式还是Solr wiki中提供的如下方法来实现的 http://localhost:8983/solr/select?q={!boost b=recip(ms(NOW,manufacturedate_dt),3.16e-11,1,1)}ipod 或者 http://localhost:8983/solr/select?q={!boost b=$dateboost v=$qq}&dateboost=recip(ms(NOW,manufacturedate_dt),3.16e-11,1,1)&qq=ipod 根据我的需求可改成: http://localhost:8983/solr/select?q={!boost b=$dateboost v=$qq}&dateboost=sum(div(landmarkRank,10),div(star,10),recip(geodist(),1,10,10))&qq=ipod&fl=*,score 此时会看到评分会改变。 此需求的实现代码如下: [java] view

redis应用开发

Deadly 提交于 2020-03-01 11:03:28
redis定义: 1.redis是什么? redis是一个高性能的key-value数据库,支持存储的value类型包括string,list,set,zset和hash,并且都支持push/pop add/remove及取交集并集和差集等操作。 2.redis的特点: 数据都缓存在内存中,会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件。 以集群方式部署,主服务器进行对外服务,支持主从同步,数据可以从主服务器向任意数量的从服务器进行同步,支持级联架构。 实现了发布/订阅机制 ,数据是分频道存储的(在不同的channel),消费数据的前提要订阅channel。 edis中值得类型不仅限于字符串,但由字符串组成,还支持: 3.redis架构: 无中心架构,节点之间互为主从 根据hash算法映射key值和其存储的主节点的位置,各节点维护key和server之间的映射关系 client可以向任意节点发起请求,无所谓主从,如果server就是client要找的节点,就会回应,如果不是,只会重定向client 如果在client请求和重定向请求之间,拓扑发生改变,则下一次重定向请求会被再次重定向,直到找到正确的server 但目前fusionInsight HD中的redis集群只支持一主一从模式 4.应用场景: 获取最新消息 排行榜应用 计数器应用 符合:高性能 低延迟

Java学习笔记(7)

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-01 04:01:53
Map集合 Map集合存储的元素是成对的,一个元素里有两个对象,这两个对象具有映射关系,一个是key,一个是value,value可以重复出现,但是key不能重复 Map接口中的常用方法 public Value put(K key, V value) : 添加键值对到MAP中 public Value remove(Object key) : 删除key对应的键值对,返回对应的value public Value get(Object key) 获取key对应的value boolean containsKey(Object key) 判断集合中是否包含这个key public Set<Key> keySet() : 获取Map集合中所有的key,存储到Set集合中。 public Set<Map.Entry<K,V>> entrySet() : 获取Map集合中所有的键值对 在使用put方法时,如果不存在这个key,就返回null,并且创建这个key,如果存在,就替换掉value 使用示例: 通过遍历key寻找key对应的value public static void main(String[] args) { HashMap<String,String> map = new HashMap<>(); map.put("1","one"); map.put("2","two"

python基础知识4(数据结构)

混江龙づ霸主 提交于 2020-03-01 02:48:19
列表 列表[]任意元素类型对象的序列 l1 = [ 'AI' , 'abc.cn' ] l2 = [ 1 , 'china' , l1 , '课程' ] - - > [ 1 , 'china' , [ 'AI' , 'abc.cn' ] , '课程' ] 列表切片 l2 [ 0 ] #第1个元素,[1]第2个,[1:3]左闭右开 [ 1 : ] 从index为 1 开始到结尾 [ : 3 ] 从最左开始到index为 2 [ : : 2 ] 从最左开始间隔为 2 列表追加 l2 . append ( [ 'last' , 'elem' ] ) #追加一个元素 - - > [ 1 , 'china' , [ 'AI' , 'abc.cn' ] , '课程' , [ 'last' , 'elem' ] ] l2 . extend ( [ 'new' , 'item' ] ) #追加列表 - - > [ 1 , 'china' , [ 'AI' , 'abc.cn' ] , '课程' , 'new' , 'item' ] +l1 #追加列表 列表剔除元素 l2 . pop ( ) #返回最尾部元素,并剔除改元素 l2 . remove ( 'china' ) #移除列表中某个值的第一个匹配项,没有返回值 - - > [ 1 , [ 'AI' , 'abc.cn' ] , '课程' ]

python基础入门之六 —— 字典

北战南征 提交于 2020-02-29 22:43:51
1、格式 符号为大括号 数据为 键值对 形式出现(字典数据与数据顺序没有关系,即字典不支持下标) 各个键值对之间逗号隔开 2、定义的类型 # 有数据 dict1 = {'name': '小明', 'sex': '男'} # 空字典 dict2 = {} dict3 =dict() # 函数定义 3、常用函数 增/改 字典序列[key]=值 (有则改之,无则新增) 删 del() /del :删除字典 clear() :清空字典 查 键值查找: 字典序列[key] 如果当前查找的key存在,则返回对应的值,否则报错 get(): 字典序列 .get (key ,默认值 ) 如果当前查找的key值不存在则返回第二个参数,如果省略第二个参数,则返回None keys(): 查找所有键,返回 可迭代对象(可以用for遍历) values(): 查找所有值,返回可迭代对象 items(): 查找所以键值,返回可迭代对象,这里每一个键值对都是以元组的形式表示 dict1={'name':'Tom', 'age':20,'sex':'男'} print(dict1.keys()) # print(dict1.values()) dict_keys(['name', 'age', 'gender']) # dict_values(['Tom', 20, '男']) print(dict1

如何添加或更新查询字符串参数?

谁说胖子不能爱 提交于 2020-02-29 22:16:58
使用javascript,如何将查询字符串参数添加到url(如果不存在)或如果存在,则更新当前值? 我正在使用jquery进行客户端开发。 #1楼 我已经扩展了该解决方案,并将其与我发现的另一个解决方案结合在一起,可以根据用户输入并考虑url锚点来替换/更新/删除querystring参数。 不提供值将删除该参数,提供一个将添加/更新该参数。 如果没有提供URL,它将从window.location中获取。 function UpdateQueryString(key, value, url) { if (!url) url = window.location.href; var re = new RegExp("([?&])" + key + "=.*?(&|#|$)(.*)", "gi"), hash; if (re.test(url)) { if (typeof value !== 'undefined' && value !== null) { return url.replace(re, '$1' + key + "=" + value + '$2$3'); } else { hash = url.split('#'); url = hash[0].replace(re, '$1$3').replace(/(&|\?)$/, ''); if (typeof hash[1]

HashMap源码理解

折月煮酒 提交于 2020-02-29 22:02:15
private static int roundUpToPowerOf2(int number) { return number >= MAXIMUM_CAPACITY ? MAXIMUM_CAPACITY : (number > 1) ? Integer.highestOneBit((number - 1) << 1) : 1; } Integer.highestOneBit方法是获取不大于本身的2^n的值,那该方法具体含义是: 获取新的数组容量值,如果给定值大于等于最大的容量,则返回最大容量,否则:如果容量小于等于1,则返回1,否则返回大于等于给定值的最接近的 2^n的值 容量为什么要是2^n次方呢?且看如下代码: static int indexFor(int h, int length) { // assert Integer.bitCount(length) == 1 : "length must be a non-zero power of 2"; return h & (length-1); } 给方法是查找h(ash)在数组的索引位置;那现在看length为什么要是2^n次方呢? 点此查看 保证&之后的数据不大于length length-1之后,最低的n位都是1,那与h的&运算之后的值即是h的最低n位 采用length-1而不是直接length是因为2

flutter 打包相关的事宜

断了今生、忘了曾经 提交于 2020-02-29 13:41:45
1.集成高德地图发布版和调试版的sha获取的问题 调试版,进入 ~/.android 执行 keytool -list -v -keystore debug.keystore 可以获得sha 2.发布版的sha获取需要找到发布版的key文件,例如 /Users/aboc/keys/phpec/key.jks 然后执行keytool -list -v -keystore /Users/aboc/keys/phpec/key.jks 会需要输入密码,密码在项目 android/key.properties 这个文件夹中,但密码是在创建的时候生成的 3.安卓打包的签名就是上面文件里面显示的md5 可以使用 一.查询keystore的MD5 可以在运行窗口,定位到keystore所在的路径,(以android默认keystore为例)执行cd /Users/aboc/.android定位到.android下 执行下面这条语句后就能显示Key的所有信息 keytool -list -v -keystore phpec .jks 这个方法获取到md5 或者用这里的这个工具 https://developers.weixin.qq.com/doc/oplatform/Downloads/Android_Resource.html 来源: CSDN 作者: mayinhua 链接: https:/