A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 奋发吧小白 高级黑马   /  2014-8-26 11:44  /  1848 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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();
}
}

希望有点帮助!

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 赞一个!

查看全部评分

9 个回复

倒序浏览
内容很详细  谢谢分享
回复 使用道具 举报
内容确实不错 好的 谢谢分享!
回复 使用道具 举报
还没学到这。。
回复 使用道具 举报
dhgcy 发表于 2014-8-29 09:31
内容很详细  谢谢分享

谢谢分享
回复 使用道具 举报
mark,说的很详细
回复 使用道具 举报
写的很好,能不能将方法的返回类型也附带着,更有助于以后理解,纯属建议。
回复 使用道具 举报
刚学到Map,谢了
回复 使用道具 举报
总结的挺好的
回复 使用道具 举报
总结的好!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马