菜鸟进化每日总结之Set、Map集合

来源:互联网 发布:安装淘宝的npm镜像 编辑:程序博客网 时间:2024/06/05 08:06
 Map和Set的操作:增、删、判断、取出。

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());
0 0
原创粉丝点击