菜鸟进化每日总结之Set、Map集合
来源:互联网 发布:安装淘宝的npm镜像 编辑:程序博客网 时间:2024/06/05 08:06
Map和Set的操作:增、删、判断、取出。
add和pu't的不同:Set是单列集合,添加相同的元素,所以add方法只添加一个进去。Map的put方法如果添加了多个键相同的元素,则会用最后添加的值来覆盖之前的值,而这个键是最先添加的那个,并每天有被覆盖这一说。
凡是遇到hash,hashmap或者hashset,底层数据结构都是哈西表,存储数据的时候一样,都是先判断当前哈西值和已添加元素的哈希值是否相同,如果不相同,就存数据,不然就继续判断equals方法,若返回true就不存,返回false就存。
add和pu't的不同:Set是单列集合,添加相同的元素,所以add方法只添加一个进去。Map的put方法如果添加了多个键相同的元素,则会用最后添加的值来覆盖之前的值,而这个键是最先添加的那个,并每天有被覆盖这一说。
凡是遇到hash,hashmap或者hashset,底层数据结构都是哈西表,存储数据的时候一样,都是先判断当前哈西值和已添加元素的哈希值是否相同,如果不相同,就存数据,不然就继续判断equals方法,若返回true就不存,返回false就存。
而遇到Tree开头的,TreeSet 和TreeMap,底层都是二叉树,存储数据遵循小的在左大的在右的原则,每个数下面最多只能有两个分支,二叉嘛,新添加进去的数据依次往下比。若存的多了,会自动折中查找,所以这种数据结构的效率是比较高的。
HashMap:
里面存的是键值对,一个键可以对应多个值,但一个值只可以对应一个键。那么hashmap可不可以存空键后面跟一个值?能!
直接返回值。
Map集合没有迭代器,它的取出方式有两种:
第一种是KeySet()方法,把键存进Set集合中,然后用Set集合的迭代器遍历得到所有的键,再用Map集合的get()方法,参数传入键,取出值。
第二种是entrySet()方法,把键值对这种映射关系存进Set集合。调用entry(),返回值实际上包含了键和值两个数据,用getke'y()方法和getvalue()两个方法,可以分别取出键和值。
TreeMap sets = new TreeMap(new MyCompare());
Set set = sets.entrySet();
Iterator it = set.iterator();
while (it.hasNext()) {
/*加了泛型<String,String>的话,直接返回string key和string value,
然后用key和value调用getKey()和getValue()方法,不然。就用下面的强转*/
Entry entry = (Entry)it.next();
System.out.println(entry.getKey()+entry.getValue());
Iterator it = set.iterator();
while (it.hasNext()) {
/*加了泛型<String,String>的话,直接返回string key和string value,
然后用key和value调用getKey()和getValue()方法,不然。就用下面的强转*/
Entry entry = (Entry)it.next();
System.out.println(entry.getKey()+entry.getValue());
0 0
- 菜鸟进化每日总结之Set、Map集合
- 20160125--集合Set-Map+总结
- java基础之集合(Set,Map,List)总结
- java集合总结-List/Set/Map/Queue
- 集合set/map/list/vector 的总结
- java集合包List、Set、Map总结
- List,Set,Map集合使用方法总结
- Java 集合List、Set、Map特性总结
- List、Set、Map常见集合遍历总结
- 集合总结(List、Map、Set)
- Java 集合List、Set、Map特性总结
- Java List 、Set、Map集合总结
- 22、集合之Set之Map
- 22、集合之Set之Map
- 一个菜鸟java码农的成长之路(6):Set集合总结
- 集合之List、Map、Set的区别
- Java数据结构之List、Set、Map集合
- java集合之Collection---set/map/list
- ListView实现Item局部刷新
- IEEE 802.15.4协议完整中文版(8)
- setLatestEventInfo(),Builder.getNotification()过时,Android提供的解决方案
- el表达式
- 技德科技宣布与Android-x86项目官方合作 并推出多款安卓PC
- 菜鸟进化每日总结之Set、Map集合
- android编码规范小结
- Struts2-037 exp 检测脚本
- IOS-Frameworks-Foundation-NSDate
- Selenium对于对话框alert,confirm,prompt的处理
- Lasso regression 和 Ridge Regression
- mongoDB
- java学习--第三篇构造函数和this关键字
- 4001