JAVA——映射

85 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第31天,[点击查看活动详情]

映射Map

集合中存储的是一个单一的对象(数字,对象,数组,集合)
字典:词语-解释---关键字:值。
映射Map存储的就是若干个键值对的集合。
key与Value之间存在1对1,多对1的关系。
key之间没有重复,Value之间存在重复。所有的key称为Set集合,Value称之为List集合

操作Map的方式

1,遍历所有的key。
2,遍历所有的value.
3,遍历Entry(键值对的对象)键值对。是set集合。

Map方法

void clear():清除映射关系。
put(k,v):添加键值对,修改键值对。
boolean containsKey(k):是否包含k。
get (k):返回指定键所映射的值。
remove(k):移除。并把值打印。

遍历键的集合

set<String> set = map2.keySet();
Iterator<String> it set.iterator();
while(it.hasNext()){
    String key = it.next();
    System.out.println(key+"="+map2.get(key));
}

遍历值的集合

Collection<String> list = map2.values();
Iterator<String> it2 = list.iterator();
 while(it2.hasNext()){
    System.out.println(it2.next());
}

遍历键值对的集合

Set<Map.Entry<String,String>> entrys= map2.entrySet();
Tterator<Map.Entry<String,String>> it3=entrys.iterator();
while(it3.hasNext()){
    System.out.println(it3.next());调用的是Enter.toString()
}

Map实现

一般将String或者Number用作于键,不太会将自定义的对象用作键.
Hashtable:键不能重复,值可以重复。键值都可Null。无序。线程安全。底层结构:哈希表+单链表。KAY作为存储关键,重写hashCode,equals.
Properties:Hashtable的一个子类,主要用于IO流。其他于Hashtable一样。
HashMap:键不能重复。键值都可NULL。无序。不安全。底层实现:哈希表+单链表。主要用在单线程环境下,HashMap优先使用于Hashtable。于Hashtable区别在于安全。
LinkedHashMap:键不能重复。键值都可NULL。有序。不安全。底层结构:哈希表+双重链表。是HashMap的一个子类。
TreeMap:键不能重复。键值都不能为NULL,要做对比。自然排序。不安全。底层结构:红黑树(比较的是:Key)。需要Key有可比较性,实现Comparable接口。
ConcurrentHashMap:键值不能重复。安全。于Hashtable基本一直。