java小记——Map

Map类

Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含一个键对象和一个值对象。

	类似于php中:
	$array = array(
    "nihao" =>"shide",
    "tahao"=>"yeshide",
    "dajiahao"=>"doutinghao"   					
	);

方法

方法名称方法说明
V get(Object key)返回 Map 集合中指定键对象所对应的值。V 表示值的数据类型
V put(K key, V value)向 Map 集合中添加键-值对,返回 key 以前对应的 value,如果没有, 则返回 null
v remove(Object key)从 Map 集合中删除 key 对应的键-值对,返回 key 对应的 value,如 果没有,则返回null
Set entrySet()返回 Map 集合中所有键-值对的 Set 集合,此 Set 集合中元素的数据 类型为 Map.Entry
Set keySet()返回 Map 集合中所有键对象的 Set 集合
    • HashMap :按哈希算法来存取键对象

        最常用的Map,它根据键的HashCode (“散列码”)值存储数据,根据键可以直接获取它的值,具有很快的访问速度。
        “散列码”是“相对唯一”用以代表对象的int值,它是通过将该对象的某些信息进行转换而生成的。
        所有Java对象都 能产生散列码,因为hashCode()是定义在基类Object中的方法。
        HashMap最多只允许一条记录的键为Null(多条会覆盖);允许多条记录的值为 Null。非同步的。
      

      子类

      • LinkedHashMap

          保留插入的顺序,如果需要输出的顺序和输入时的相同,那么就选用 LinkedHashMap。
        
    • TreeMap

        能够把它保存的记录根据键(key)排序,
        默认是按升序排序,也可以指定排序的比较器,当用Iterator 遍历TreeMap时,得到的记录是排过序的。
        TreeMap不允许key的值为null。非同步的。
      

 @Test
    public void mapTest(){
        Map<String,String> map = new HashMap<String, String>();

        map.put("1","value1");//存值
        map.put("2","value2");
        map.put("3","value3");
        map.put("4","value4");
        map.put("5","value5");
        map.put("6","value6");
        map.put("7","value7");

		//查看是否存在某个健值
        System.out.println(map.containsKey("6"));//TRUE
        //是否存在某个值
        System.out.println(map.containsValue("value6"));//true
        //获取值
        System.out.println(map.get("1"));//value1

        //获取map 长度
        System.out.println(map.size()); //7
        //删除
        map.remove("7");
        System.out.println(map.size()); //6

        //获取所有key值
        System.out.println(map.keySet());//[1, 2, 3, 4, 5, 6]

        //获取所有value值
        System.out.println(map.values());//[value1, value2, value3, value4, value5, value6]
       /*
           循环打印
        */
        System.out.println("使用keySet+get");
        for (String key: map.keySet()){
            System.out.println("key="+key+" and value = "+map.get(key));
        }

        System.out.println("使用value");
        for (String v:map.values()){
            System.out.println("value = "+v);
        }

        System.out.println("使用entrySet");
        for (Map.Entry<String,String > entry:map.entrySet()){
            System.out.println("key = "+entry.getKey()+" ,value="+entry.getValue());
        }

        //使用迭代器
        System.out.println("迭代器:iterator ");
        Iterator<Map.Entry<String,String>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()){
            Map.Entry<String, String> entry = iterator.next();
            System.out.println(entry.getKey() + " :" + entry.getValue());
        }

		/*
		使用keySet+get
key=1 and value = value1
key=2 and value = value2
key=3 and value = value3
key=4 and value = value4
key=5 and value = value5
key=6 and value = value6
使用value
value = value1
value = value2
value = value3
value = value4
value = value5
value = value6
使用entrySet
key = 1 ,value=value1
key = 2 ,value=value2
key = 3 ,value=value3
key = 4 ,value=value4
key = 5 ,value=value5
key = 6 ,value=value6
迭代器:iterator 
1 :value1
2 :value2
3 :value3
4 :value4
5 :value5
6 :value6
		*/
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值