0
点赞
收藏
分享

微信扫一扫

Map接口及其子实现类

伽马星系 2022-01-23 阅读 69

1. Map接口

1.(1)Map<K,V>集合:能够描述现实世界事物的实体类
  (2)将键映射到值的对象,表示一系列键值对元素
  (3)Map针对键有效,跟值无关,值可以重复,但是键必须是唯一的
2.子实现类:
		(1)HashMap:基于哈希表实现Map接口
				   特点:允许null值和null键存在,线程不安全的类,不能保证迭代顺序永久不变
		(2)TreeMap:底层是一个红黑树结构

1.1 Map的基本功能

1.  获取长度:
	public int size():获取集合元素数
    添加功能:
    public V put(K key,V value):添加键值对元素,有返回值:如果key不重复,返回值为null,通过返回值是否为null判断是否重复添加.以来ObjecthashCode()equals()方法
    删除功能:
    public V remove(Object key):删除指定的键,并返回删除的值
    public void clear():暴力删除,清空所有键值对对象
    判断功能:
	public boolean containsKey(Object key):判断是否包含指定键
    public boolean containsValue(Object value):判断是否包含指定的值
    public boolean isEmpty():判断集合是否为空    

1.2 Map集合的遍历方式

1.方式一:获取所有键的集合
		public Set<K> keyset():将所有的键获取
    	public V get (Object key):获取键所对应的值
2.实现代码:
public class MapDemo{
    public static void main(String[] args){
        Map<String,String> map = new HashMap<>();
        map.put("杨过","小龙女");
        map.put("郭靖","黄蓉");
        map.put("尔康","紫薇") ;
        map.put("陈玄风","梅超风") ;
        map.put("贾宝玉" ,"林黛玉") ;
        //获取所有键的集合
        Set<String> setKey = map.keySet();
        //获取所有键,遍历Set集合
        for(String key:setKet){
            String value = map.get(key);
            sout(key+"\t"+value);
        }
    }
}

3.方式二:获取所有键值对对象
    	Set<Map.Entry<K,V>> entrySet();获取所有键值对对象,一个键值对对象称为映射项
    	使用接口中的方法:
						K getKey():获取键
                        V getValue():获取值
4.实现代码:
public class MapDemo{
    public static void main(String[] args){
        Map<String,String> map = new HashMap<>();
        map.put("杨过","小龙女") ;
        map.put("郭靖","黄蓉") ;
        map.put("尔康","紫薇") ;
        map.put("陈玄风","梅超风") ;
        map.put("贾宝玉" ,"林黛玉") ;
        map.put("令狐冲" ,"任盈盈") 
            
        Set<Map.Entry<String,String>> entry = map.entrySet();
        
        for(Map.Entry<String,String> en:entry){
            String key = en.getKey();
            String value = en.getValue();
            sout(key+"\t"+value);
        }
    }
}
    

2.HashMap集合

1.如果针对键是jdk提供的类型,不需要重写hashCode()和equals()
  自定义类型需要重写这两种方法

3.TreeMap集合

两种排序方式:
			1.实现Comparabele接口,重写其中的compareTo方法
            2.实现Comparator接口,重写compare方法
举报

相关推荐

0 条评论