key

Map方法小结

时光毁灭记忆、已成空白 提交于 2020-03-04 06:40:25
1、Map.containsKey方法——判断Map集合对象中是否包含指定的键名 该方法判断Map集合对象中是否包含指定的键名。如果Map集合中包含指定的键名,则返回true,否则返回false。 语法 containsKey(Object key) public static void main ( String [ ] args ) { Map map = new HashMap ( ) ; //定义Map对象 map.put ( "apple" , "新鲜的苹果" ) ; //向集合中添加对象 map.put ( "computer" , "配置优良的计算机" ) ; map.put ( "book" , "堆积成山的图书" ) ; map.put ( "time" , new Date ( )) ; String key = "book" ; boolean contains = map.containsKey ( key ) ; //判断是否包含指定的键值 if ( contains ) { //如果条件为真 System.out.println ( "在Map集合中包含键名" + key ) ; //输出信息 } else { System.out.println ( "在Map集合中不包含键名" + key ) ; } } 2、Map简介 对比:

设计模式笔记—11_Flyweight享元模式

别来无恙 提交于 2020-03-04 03:53:19
文章目录 Flyweight享元模式是一种“对象性能”模式 动机 定义 结构 代码对比 flyweight.cpp 对比 要点总结 Flyweight享元模式是一种“对象性能”模式 面向对象很好地解决了“抽象”的问题,但是必不可免地要付出一定的代价。对于通常情况来说,面向对象的成本大都可以忽略不计。但是某些情况,面向对象所带来的成本必须谨慎处理 动机 在软件系统采用纯粹对象方案的问题在于 大量细粒度的对象 会很快充斥在系统中,从而带来很高的运行时代价——主要指内存需求方面的代价 如何在避免大量细粒度对象问题的同时,让外部客户程序仍然能够透明地使用面向对象的方式来进行操作? 定义 运用共享技术有效地支持 大量细粒度的对象 结构 代码对比 flyweight.cpp class Font { private: //unique object key string key; //object state //.... public: Font(const string& key){ //... } }; ß class FontFactory{ private: map<string,Font* > fontPool; public: Font* GetFont(const string& key){ map<string,Font*>::iterator item=fontPool

线程共享全局变量和私有全局变量

戏子无情 提交于 2020-03-04 03:46:27
共享全局变量实例: #include <stdio.h> #include <pthread.h> #include <unistd.h> #include <stdlib.h> int key=100; void *helloworld_one(char *argc) { printf("the message is %s\n",argc); key=10; printf("key=%d, the child is %u\n",key,pthread_self()); return 0; } void *helloworld_two(char *argc) { printf("the message is %s\n",argc); sleep(1); printf("key=%d, the child is %u\n",key,pthread_self()); } int main() { pthread_t thread_id_one; pthread_t thread_id_two; pthread_create(&thread_id_one,NULL,helloworld_one,"helloworld"); pthread_create(&thread_id_two,NULL,helloworld_two,"helloworld"); pthread_join

redis shell命令大全

烂漫一生 提交于 2020-03-03 18:56:06
redis shell命令大全(转自 http://blog.mkfree.com/posts/5105432f975ad0eb7d135964 ) 作者:oyhk 2013-1-28 3:11:35 0 评论 783浏览 APPEND key value追加一个值到key上 AUTH password验证服务器 BGREWRITEAOF异步重写追加文件 BGSAVE异步保存数据集到磁盘上 BLPOP key [key ...] timeout删除,并获得该列表中的第一元素,或阻塞,直到有一个可用 BRPOP key [key ...] timeout删除,并获得该列表中的最后一个元素,或阻塞,直到有一个可用 BRPOPLPUSH source destination timeout弹出一个列表的值,将它推到另一个列表,并返回它;或阻塞,直到有一个可用 CLIENT KILL ip:portKill the connection of a client CLIENT LISTGet the list of client connections CONFIG GET parameter获取配置参数的值 CONFIG SET parameter value设置配置参数的值 CONFIG RESETSTAT复位再分配使用info命令报告的统计 DBSIZE返回当前数据库里面的keys数量

设计模式-11享元模式(Flyweight Pattern)

孤街醉人 提交于 2020-03-03 15:49:33
1.模式动机 在面向对象程序设计过程中,有时会面临要创建大量 相同或相似 对象实例的问题。创建那么多的对象将会耗费很多的系统资源,它是系统性能提高的一个瓶颈。 享元模式就是把 相同或相似 对象的公共部分提取出来变为共享的,而不同的部分为对象私有的。这样设计无疑增加了程序的复杂性。 2.模式定义 享元模式(Flyweight Pattern):运用共享技术有效地支持大量细粒度对象的复用。系统只使用少量的对象,而这些对象都很相似,状态变化很小,可以实现对象的多次复用。由于享元模式要求能够共享的对象必须是细粒度对象,因此它又称为轻量级模式。 属于 对象结构型模式 。 享元模式的理念: 享元模式通过共享技术实现相同或相似对象的重用。 在享元模式中可以共享的相同内容称为内部状态(IntrinsicState),而那些需要外部环境来设置的不能共享的内容称为外部状态(Extrinsic State),由于区分了内部状态和外部状态,因此可以通过设置不同的外部状态使得相同的对象可以具有一些不同的特征,而相同的内部状态是可以共享的。 在享元模式中通常会出现工厂模式,需要创建一个享元工厂来负责维护一个享元池(Flyweight Pool)用于存储具有相同内部状态的享元对象。 享元模式的目的就是使用共享技术来实现大量细粒度对象的复用。 3.模式结构 享元模式的主要角色有如下: 抽象享元角色

C#读写app.config中的数据

こ雲淡風輕ζ 提交于 2020-03-03 06:55:43
读语句: String str = ConfigurationManager.AppSettings["DemoKey"]; 写语句: Configuration cfa =   ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);cfa.AppSettings.Settings["DemoKey"].Value = "DemoValue";cfa.Save(); 配置文件内容格式:(app.config) <?xml version="1.0" encoding="utf-8" ?><configuration><appSettings> <add key="DemoKey" value="*" /></appSettings></configuration> 红笔标明的几个关键节是必须的 System.Configuration.ConfigurationSettings.AppSettings["Key"];   但是现在FrameWork2.0已经明确表示此属性已经过时。并建议改为ConfigurationManager 或WebConfigurationManager。并且AppSettings属性是只读的,并不支持修改属性值.  

Powershell Export Multiple Keys To One .reg File

此生再无相见时 提交于 2020-03-03 05:43:40
问题 I would like to export multiple registry keys to the same .reg file. Every suggestion I've seen shows to use reg /e [key name] filename.reg, but I have a list of 4-5 registry entries I want to export and doing it this way will overwrite it each time. What I want is something like: Export HKLM\Software\Test\ABC RegFile.reg Export HKLM\Software\ABC\123 RegFile.reg Export HKLM\Software\XYZ\Lala RegFile.reg So that each registry key is appended to the same .reg file, not overwritten each time.

Java 并发编程(一)

谁说我不能喝 提交于 2020-03-02 13:13:08
#Java 并发编程(一) ##同步容器 1.Vector,Hashtable。 实现线程安全的方式是:将它们的状态封装起来,并对每个共有方法进行同步,使得每次只有一个线程能访问容器的状态。使用了Java监视器模式。 2.Vector代码分析 //根据下标获取数据,都是使用synchronized实现同步 public synchronized E get(int index) { if (index >= elementCount) throw new ArrayIndexOutOfBoundsException(index); return elementData(index); } //添加数据 public synchronized boolean add(E e) { modCount++; ensureCapacityHelper(elementCount + 1); elementData[elementCount++] = e; return true; } //扩容 private void grow(int minCapacity) { // overflow-conscious code int oldCapacity = elementData.length; int newCapacity = oldCapacity + (

spark: 二次排序-2

北战南征 提交于 2020-03-02 12:39:51
在上一篇文章,使用了###错误###的方法实现二次排序,导致排序按key字典排序,并非我们想要的结果 现在,使用自定义排序方法来实现二次排序 1, 思路 输入数据 aa 12 bb 32 aa 3, cc 43 dd 23 cc 5 cc 8 bb 23 bb 12 自定义排序类:对二元组(key:String, value:Int)进行排序 把每一行数据map成二元组(key:String, value:Int) 排序 -- scala自动使用步骤1定义的排序类进行排序 /** * 1. 自定义排序类:对二元组(key:String, value:Int)进行排序 */ class KVOrdering extends Ordering[Tuple2[String, Int]] with Serializable { override def compare(x: Tuple2[String, Int], y: Tuple2[String, Int]):Int = { val comp = x._1.compareTo(y._1) if (comp == 0) { // key相等, 则比较value x._2.compareTo(y._2) } else { comp } } } 由于scala的隐式转换机制,这个类会对闭包内的所有Tuple2[String, Int]产生作用

redis处理过期key机制

核能气质少年 提交于 2020-03-02 08:34:49
一,redis处理过期keys的机制 当client主动访问key时,会先对key进行超时判断,过时的key会立刻删除;另外 Redis会在后台,每秒10次的执行如下操作: 随机选取100个key校验是否过期,如果有25 个以上的key过期了,立刻额外随机选取下100个key(不计算在10次之内)。也就是说,如果 过期的key不多,Redis最多每秒回收200条左右,如果有超过25%的key过期了,它就会做得 更多,这样即使从不被访问的数据,过期了也会被删除掉。 二, 处理过期keys的命令 1:expire:设置过期时间,格式是expire key值秒数 2:expireat:设置过期时间,格式是expireat key值到秒的时间戳 3:ttl:查看还有多少秒过期,格式是ttl key值,-1表示永不过期,-2表示已过期 4:persist:设置成永不过期,格式是persist key值,删除key的过期设置;另外使用set或 者getset命令为键赋值的时候,也会清除键的过期时间 5:pttl:查看还有多少毫秒过期,格式是pttl key值 6:pexpire:设置过期时间,格式是pexpire key值毫秒数 7:pexpireat:设置过期时间,格式是pexpireat key值到毫秒的时间戳 来源: oschina 链接: https://my.oschina.net