概述
---------------------- android培训、 java培训、期待与您交流! ----------------------
集合: Map:
Map: 存储的是键值对的形式, 键唯一, 可以通过键查找值;
1.HashMap: 和hashSet原理相同, 都是用哈希算法去重复, HashMap在存储键值对的时候, 对key对象取哈希值, 然后查找是否有相同的哈希值对象, 如果没有就直接存入, 如果有哈希值相同的key对象, 那么就和哈希值相同的key对象进行equals()比较. 结果为true就存入, 结果为false就覆盖, 非线程同步.无序的,即元素存入和取出的顺序不一定一致.
2.TreeMap: 底层数据结构是二叉树, 可以按照key对象的顺序进行排序, 如果不指定顺序则按照key对象的自然顺序, 或者也可以指定一个比较器顺序, 非线程同步.允许对Map集合中的键进行排序.
3.HashTable: 数据结构也是哈希表.线程同步,因此效率较低.不能用null作为键值,被HashMap替代了.
4.迭代Map集合:
<1>使用keySet()方法得到Map集合中所有key对象组成的set集合;
遍历这个key对象就可以得到每个key对象;
然后用key对象获取Value;
原理:将Map转换成Set,再使用迭代器, key对象就等于是一个set集合;
思路: 将Map转换成Set,再使用迭代器.使用keySet()方法,将键存入一个Set集合,在使用迭代器进行遍历的过程中,用getValue()获取相应的值.
如:
Set set = map.keySet();
for(Iterator it=set.iterator(); it.hasNext(); )
{
String key = it.next();
System.out.println("key="+key+",value="+map.getValue(key));
}
<2>entterySet(就是一个键值对):
使用entrySet()方法得到Map集合中的所有Entry对象组成的集合,遍历这个Set集合就可以得到没哟个Entry对象;
entrySet()方法,返回的是包含键值对映射关系的Set集合, 然后通过Entry对象的getkey()方, ,和getgetValue()方法得到key和Value对象;
如::
Set<Map.Entry<k,v>> set = map.entrySet();
for(Iterator it=set.iterator(); it.hasNext(); )
{
Map.Entry<k,v> me = it.next();
System.out.println("key="+me.getKey()+",value="+me.getValue());
}
最后
以上就是无语红牛为你收集整理的黑马程序员---Map集合 学习笔记的全部内容,希望文章能够帮你解决黑马程序员---Map集合 学习笔记所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复