java中的Map类总结篇

1.Map双边队列

1.1什么是Map

       键(Key)值(Value)对

程序开发大部分都是键值对形式的:Mysql JSON XML 类对象成员变量和存储的数据

从前端发送的数据也可以转成Map格式 ==> 一键生成 ==> 类对象 ==> 一键存储 ==> 数据库

 

interface Map<K,V>

--|class HashMap<K,V> 哈希表

--|class TreeMap<K,V>底层是树形结构,存储要求K有对应的排序方式

     Map双边队列中键(Key)是唯一的,但是值(Value)可重复

 

1.2Map<K,V>双边队列方法

 

增:

      put(K k,V v);存入一个键值对类型,K和V都要符合泛型约束

      putAll(Map<? extends K,?extends V> map);

       存入另一个Map双边队列,并且要求添加的Map双边对接口中的K和V都要和当前Map中存储的K和V一致

 

删:

    remove(Object k);

        删除对应K的键(Key)值(Value)对

改:

     put(K k,V v);

      对应当前K存在,修改对应内容

查:

      int size();

        对应当前K存在,修改对应内容

      boolean isEmpty();

        是否为空

      boolean containsKey(Object key);

      判断指定的Key是否存在

      boolean containValue(Object value);

     判定指定的Value是否存在

      Set<K> keySet();

       返回整个Map双边队列中所有Key对应的Set集合

          【注意】一个方法使用set结尾,表示该方法返回的是一个集合类型,大多数情况下都是Set类型

   Collection<V> values();

             返回整个Map双边队列中所有Value对应的Collection集合

          【注意】方法名如果是一个复数,返回值类型集合或者是数组情况居多

package map;

import java.util.Collection;
import java.util.HashMap;
import java.util.Set;

public class Demo1 {
	public static void main(String[] args) {
		HashMap<String, String> map = new HashMap<String,String>();
		
		map.put("小刘", "小王");
		map.put("小刘1", "小王1");
		map.put("小刘2", "小王2");
		map.put("小刘3", "小王3");

		System.out.println(map);
		
		HashMap<String, String> map2 = new HashMap<String,String>();
		
		map2.put("Tom", "Jerry");
		map2.put("Tom1", "Jerry1");
		
		map2.put("Tom2", "Jerry2");
		map2.put("Tom3", "Jerry3");
		
		map.putAll(map2);
		
		System.out.println(map);
		
		
		System.out.println(map.remove("Tom2"));
		
		System.out.println(map);
		
		
		map.put("小刘2", "小王22");
		System.out.println(map);
		
		
		System.out.println(map.containsKey("哈哈哈"));
		
		System.out.println(map.containsValue("你说啥呢"));
		
		System.out.println(map.containsKey("小刘1"));
		
		System.out.println(map.containsValue("小王1"));
		
		
		Set<String> KeySet=map.keySet();
		
		System.out.println(KeySet);
		
		
		Collection<String> values = map.values();
		System.out.println(values);
		
		map.put("Tom3", "Jerry2");
		
		System.out.println(map);

	}

}

1.3 EntrySet

   Entry 可以认为是键值对对象

定义在Map类内

    class Entry<K,V>{

            K k;

            V v;

}

   K,V是完全依赖于Map约束的,这里可以Entry里面保存的是每一个键值对想

Map中提供一个方法

    Set<Entry> entrySet

   返回值是键值对类对象Set集合

    Set几个钟存储的是Entry类型

    Entry类型是带有泛型的  

package map;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Demo2 {
	
	public static void main(String[] args) {
       HashMap<String, String> map = new HashMap<String,String>();
		
		map.put("小刘", "小王");
		map.put("小刘1", "小王1");
		map.put("小刘2", "小王2");
		map.put("小刘3", "小王3");
		
		Set<Map.Entry<String, String>> entrySet = map.entrySet();
		System.out.println(entrySet);
		
	}

}

 1.4 TreeMap<K,V>以及Comparable和Comparator

K 是需要有对应的比较方式,如果没有比较方式,午法存入。

import java.util.Comparator;
import java.util.TreeMap;

public class Demo3 {
	public static void main(String[] args) {
		TreeMap<String,String> map = new TreeMap<String, String>();
		
		map.put("李四", "1");
		map.put("王五", "1");
		map.put("赵六", "1");
		map.put("张三", "1");
		
		System.out.println(map);
		
		TreeMap<Dog,String> map2 = new TreeMap<Dog, String>(new Comparator<Dog>() {

			@Override
			public int compare(Dog o1, Dog o2) {
				return o1.getAge() - o2.getAge();
			}
		});
		
		map2.put(new Dog("王可可", 1), "111"); 
		map2.put(new Dog("八公", 2), "111"); 
		map2.put(new Dog("豆豆", 3), "111"); 
		map2.put(new Dog("老黄", 4), "111"); 
		map2.put(new Dog("旺财", 5), "111"); 
		
		System.out.println(map2);
		
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值