键值

111、Properties属性集

你说的曾经没有我的故事 提交于 2020-03-17 08:07:05
java.util.Properties结合 extends Hashtable<k,v> implements Map<k,v> 一、简介 java.util.Properties ` 继承于` Hashtable` ,来表示一个持久的属性集。Properties可保存在流中或从流中加载。它使用键值结构存储数据,每个键及其对应值都是一个字符串。该类也被许多Java类使用,比如获取系统属性时,`System.getProperties` 方法就是返回一个`Properties`对象。 属性列表中每个键及其对应的值都是一个字符串。 Properties集合是一个双列结合,key和value默认都是字符串 二、构造方法 public Properties()` :创建一个空的属性列表。 三、基本的存储方法 public Object setProperty(String key, String value): 保存一对属性。 public String getProperty(String key) : 使用此属性列表中指定的键搜索属性值。 public Set<String> stringPropertyNames() : 所有键的名称的集合。 四、与流相关的方法 1、Properties集合是一个唯一和IO流相结合的集合。 可以使用Properties集合中的方法store

STL中的map容器的一点总结

守給你的承諾、 提交于 2020-03-16 08:50:48
一、关于map的介绍 map是 STL 的一个容器,和set一样,map也是一种关联式容器。它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,有助于我们处理一对一数据。这里说下map内部数据的组织,map内部是自建一颗红黑树 ( 一种非严格意义上的平衡二叉树 ) ,这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的。学习map我们一定要理解什么是 一对一的数据映射?比如:一个班级中,每个学生的学号跟他的姓名就存在着一一映射的关系,这个模型用map可能轻易描述,很明显学号用int 描述,姓名用字符串描述采用 的 string,于是我们使用的map形式如下:map<int , string> student; 关于map和set底层实现以及效率问题,在另一篇 《STL中set容器的一点总结》 已经说了一些,map和set底层实现都是采用了平衡树来实现的。这里说一下map和set容器的区别。 对于map中的每个节点存储的是一对信息,包括一个键和一个值,各个节点之间的键值不能重复。 对于set中的每个节点存储的是一个信息,只有一个键,但是每个键值也是唯一的。set表示的是集合的概念。 对于map的学习,或者说是对STL中的容器的学习,要知道每种容器的实现原理,每种适合适合解决什么问题的

java中Map遍历的方法

让人想犯罪 __ 提交于 2020-03-14 04:20:34
1 public class testMap { 2 public static void main(String[] args) { 3 4 Map<String, String> map=new HashMap<String,String>(); 5 map.put("a", "aaaa"); 6 map.put("b", "bbbb"); 7 map.put("c", "cccc"); 8 map.put("d", "dddd"); 9 map.put("e", "eeee"); 10 11 // iterator 遍历 12 Set set=map.keySet(); 13 for(Iterator iter=set.iterator();iter.hasNext();){ 14 String key=(String) iter.next(); 15 String value=(String) map.get(key); 16 System.out.println(key+"===="+value); 17 } 18 19 20 // 增强for循环遍历 21 // 查找键(key) 22 for(Object key:map.keySet()){ 23 System.out.println("集合的键是"+"#########"+key); 24 } 25 // 查找值

Properties类(属性集)

不羁岁月 提交于 2020-03-13 08:01:15
1_使用Properties集合存储数据,遍历 输出结果: (2)load 修改空格为键与值的分隔符 执行结果: ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Demo01Properties.java package com.itheima.demo07.Prop; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.util.Properties; import java.util.Set; /* java .util.Properties 集合 extends Hashtable<k,v> implements Map<k,v> Properties 类表示了一个持久的属性集。Properties 可保存在流中或从流中加载。 Properties集合是一个唯一和IO流相结合的集合 可以使用Properties集合中的方法 store

Redis三(数据类型-常用命令)

允我心安 提交于 2020-03-12 14:23:05
数据类型 字符串 string, 哈希 hash, 链表 list, 集合 set, 排序集合 zset 字符串(string) 数据为字符串. 保存方式是二进制数据. 二进制数据是可以指定长度的,无结束标记的数据. 数据长度有限制: 512M 哈希(hash) 数据为哈希表. 类似java中的Map. 键值对存储结构类似java中的Map<String, Map<String, String>> 链表(list) 数据为一个有序的链表集合 键值对存储结构类似java中的Map<String, List<String>> 集合(set) 数据为一个无下标的集合, 数据不重复 数据结构类似java中的Map<String, Set<String>> 排序集合(zset) 数据为一个可排序的集合. 数据不重复 数据结构类似java中的Map<String, SortedSet<String>> 排序规则为字符串对应的二进制数据的大小排序. 通用命令 keys 查询当前redis中的key值, 例如: keys * 注意 : 测试时可以使用 keys *, 实际环境中慎用. 因为keys *会导致Redis暂时被锁住,其他的请求都会被阻塞,对于业务体量比较小的,倒是无关痛痒,但是当业务量达到百万千万级别的时候,这个会造成Redis崩溃,从而导致其他的业务崩溃。 incr incr -

伸展树(三)之 Java的实现

落花浮王杯 提交于 2020-03-12 04:45:38
概要 前面分别通过C和C++实现了伸展树,本章给出伸展树的Java版本。基本算法和原理都与前两章一样。 1. 伸展树的介绍 2. 伸展树的Java实现(完整源码) 3. 伸展树的Java测试程序 转载请注明出处: http://www.cnblogs.com/skywang12345/p/3604286.html 更多内容 : 数据结构与算法系列 目录 (01) 伸展树(一)之 图文解析 和 C语言的实现 (02) 伸展树(二)之 C++的实现 (03) 伸展树(三)之 Java的实现 伸展树的介绍 伸展树(Splay Tree)是特殊的二叉查找树。 它的特殊是指,它除了本身是棵二叉查找树之外,它还具备一个特点: 当某个节点被访问时,伸展树会通过旋转使该节点成为树根。这样做的好处是,下次要访问该节点时,能够迅速的访问到该节点。 伸展树的Java实现 1. 基本定义 public class SplayTree<T extends Comparable<T>> { private SplayTreeNode<T> mRoot; // 根结点 public class SplayTreeNode<T extends Comparable<T>> { T key; // 关键字(键值) SplayTreeNode<T> left; // 左孩子 SplayTreeNode<T>

C++ map 和 multimap 容器

与世无争的帅哥 提交于 2020-03-11 18:21:51
map/multimap的简介 map是标准的关联式容器,一个map里存储的元素是一个键值对序列,叫做(key,value)键值对。它提供基于key快速检索数据的能力。 map中key值是唯一的。集合中的元素按一定的顺序排列。元素插入过程是按排序规则插入,所以不能指定插入位置。 map底层的具体实现是采用红黑树变体的平衡二叉树的数据结构。在插入操作、删除和检索操作上比vector快很多。 map可以直接存取key所对应的value,支持[]操作符,如map[key]=value。 使用时必须包含头文件 #include <map> multimap与map的区别: map支持唯一键值,每个键只能出现一次;而multimap中相同键可以出现多次。multimap不支持[]操作符。 map/multimap容器 和 set/multiset容器都是差不多的,只是map/mulitmap比他们多了一个键值! 如果不懂set/multiset容器的可以点下面链接: https://blog.csdn.net/cpp_learner/article/details/104751672 当然,map/multimap容器也有 仿函数 ,因为在之前的文章中,已经详细讲过了,所以这里就不在讲了,如果不懂的可以点下面链接去学习: https://blog.csdn.net/cpp_learner

JavaIO - Properties集合

南笙酒味 提交于 2020-03-11 13:55:30
Properties集合是双列集合 1,该集合中的键和值都是字符串类型 2,集合中的数据可以保存到流中或者从流中获取 通常该集合操作以键值对形式存在的配置文件。 ● 获取输入流方法: FileInputStream fis = new FileInputStream(properties文件路径); InputStream is = 类名.class.getClassLoader().getResourceAsStream(properties文件名); ● 常用方法: void load(InputStream in):从(文件)流中获取键值对信息,必须是字符串形式的键值对。 String getProperty(String Key):用指定的键在此属性列表中搜索属性,也就是通过Key得到Key所对应的Value。 void setProperty(String Key,String Value):存储元素,调用HashTable的put方法 void store(OutputStream out,String comments):将集合中的键值对数据写入输出流。comments文档注释 void list(PrintStream out):将集合中的键值输出到指定的输出流中 void clear():清空集合中所有键值对。 Set<String>

vs插件注册的原理

允我心安 提交于 2020-03-11 12:57:18
之前遇到了关于vs插件在win7注册的问题,后来虽然问题解决了,但是在问题解决过程中思考过一个问题,vs的插件(addin)是如何注册的? 对于简单的操作来说就是调用regsvr32来注册,而本质上就是执行dll的导出函数DllRegisterServer(当然还有反注册的DllUnregisterServer),但我看了通过向导生成的vs插件工程中的对应文件,找到了这两个函数,发现其只是调用CAddinModule,而这个类是继承于CAtlDllModuleT,显然这是一个通用的模板类,而CAddinModule中并没有关于注册的实现方法。但是在调用addin注册后,会至少在如下两个键值上更新: HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\AddIns HKEY_CURRENT_USER\Software\Microsoft\VSA\8.0\AddIns 对比注册、反注册,会发现这两个键值会有变化,显然这两个键值应该就是VS判断加载插件的依据,但是在哪里注册上去的呢? 后来发现工程下有个rgs 文件,其中描述到了这两个特定的键值,但似乎没有主动的调用过这个rgs文件。后来google了一下发现 http://www.cppblog.com/zhouhuishine/articles/26704.html 继而找到

NoSQL 与 关系型数据库

爱⌒轻易说出口 提交于 2020-03-11 10:00:21
一、二者的基本概念 NoSQL,泛指非关系型的数据库。 关系数据库,是建立在关系模型基础上的数据库。 这里提到了关系模型, 关系模型是1970年由E.F.Codd提出的。 它和层次、网状模型相比,有以下特点: 1.数据结构简单(二维表格) 2.扎实的理论基础。 a.关系运算理论 b.关系模式设计理论 简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。 对于NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征: 不需要预定义模式:不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式。 无共享架构:相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能,从而提高了系统的性能。 弹性可扩展:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。 分区:相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能,又能保证没有单点失效的问题。 异步复制:和RAID存储系统不同的是,NoSQL中的复制,往往是基于日志的异步复制。这样