黑马程序员技术交流社区
标题:
Map集合取出总结
[打印本页]
作者:
奋发吧小白
时间:
2014-8-26 11:44
标题:
Map集合取出总结
Map集合:
该集合存储键值对,一对一对的往里存,而且要保证键的唯一性
1添加
put(key value);putAll();
2删除
clear();remove(Object key);
3判断
containsValue(Object value);containsKey(Object key);isEmpty()
;
4获取
get(Object key);size();value();
重点的方法:entrySet() 和keySet();
Map:常用的三个子类:
|--HashTable:底层是哈希表数据结构,不可以存入null键或者null
值。该集合是线程同步的JDK1.0
此类实现一个哈希表,该哈希表将键映射到相应的值。任何非 null
对象都可以用作键或值。
|--HashMap:底层是哈希表树结构,可以存入null键或者null值,该
集合是线程不同步的JDK1.2 效率高
|--TreeMap:底层是二叉树结构,线程不同步,可以用于给map集合
中的键进行排序。
其实Set底层就是使用了Map集合
map集合的两种取出方式:
map集合取出的原理:将map集合转成set集合。再通过迭代器取出。
1:keySet:将map中所有的键存入到set集合。因为set集合具备迭代
器。所以可以迭代方式取出所有键,在根据get方法。获取每一个键对
应的值。
import java.util.*;
public class MapDemo
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String [] args)
{
Map<String,String> mp = new
HashMap<String,String>();
mp.put("01","zhangsan1");
mp.put("02","zhangsan2");
mp.put("03","zhangsan3");
mp.put("04","zhangsan4");
//定义一个keySet集合
Set<String> keySet = mp.keySet();
Iterator<String> it = keySet.iterator();
while(it.hasNext())
{
String key = it.next();
String value = mp.get(key);
sop(key+"<----->"+value);
}
}
}
2 Set<Map.Entry<k,v>>entrySet();将map集合中的映射关系存入
到了set集合中,而这个关系的数据类型就是:map.Entry
import java.util.*;
public class MapDemo
{
public static void sop(Object obj)
{
System.out.println(obj);
}
public static void main(String [] args)
{
Map<String,String> mp = new
HashMap<String,String>();
mp.put("01","zhangsan1");
mp.put("02","zhangsan2");
mp.put("03","zhangsan3");
mp.put("04","zhangsan4");
Set<Map.Entry<String,String>> entrySet =
map.entrySet();
Iterator<Map.Entry<String,String>> it =
entrySet.iterator();
while(it.hasNext())
{
Map.Entry<String,String> me =
it.next();
String key = me.getKey();
String value = me.getValue();
System.out.println(key+"::"+value);
}
}
}
Map.Entry 其实Entry也是一个接口,他是map接口中的一个内部接口
。
interface Map
{
public static interface Entry
{
public abstract Object getKey();
public abstract Object getValue();
}
}
希望有点帮助!
作者:
dhgcy
时间:
2014-8-29 09:31
内容很详细 谢谢分享
作者:
大成哥
时间:
2014-8-29 10:39
内容确实不错 好的 谢谢分享!
作者:
低调小邦
时间:
2014-8-30 00:19
还没学到这。。
作者:
glbai
时间:
2014-8-30 07:13
dhgcy 发表于 2014-8-29 09:31
内容很详细 谢谢分享
谢谢分享
作者:
Kikyou
时间:
2014-8-30 08:30
mark,说的很详细
作者:
xing260577315
时间:
2014-8-30 08:48
写的很好,能不能将方法的返回类型也附带着,更有助于以后理解,纯属建议。
作者:
菜鸟一号
时间:
2014-8-30 08:55
刚学到Map,谢了
作者:
文盲庄稼汉
时间:
2014-8-30 11:25
总结的挺好的
作者:
Sakuratossi
时间:
2014-8-30 12:08
总结的好!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2