-
双列集合:
-------------| Map 如果是实现了Map接口的集合类,具备的特点: 存储的数据都是以键值对的形式存在的,键不可重复,值可以重复。- Map接口的方法:
添加:
put(K key, V value) 如果之前没有存在该键,那么返回的是null,如果之前就已经存在该键了,那么就返回该键之前对应 的值。putAll(Map<? extends K,? extends V> m) 把一个集合的元素添加到另一个集合中
删除
remove(Object key) 根据键删除一条map中的数据,返回的是该键对应 的值。
clear() 清空集合中的所有数据。获取:
get(Object key) 根据指定 的键获取对应的值
size() 获取map集合键值对个数判断:
containsKey(Object key) 判断map集合是否包含指定的键
containsValue(Object value) 判断map集合中是否包含指定 的值
isEmpty()判断map集合是否为空元素
迭代:
keySet() 使用keySet方法进行遍历 缺点: keySet方法只是返回了所有的键,没有值。
values() 使用values方法进行 遍历。 缺点: values方法只能返回所有 的值,没有键。
entrySet()遍历:
Set<Map.Entry<String,String>> entrys = map.entrySet();
Iterator<Map.Entry<String,String>> it = entrys.iterator();
while(it.hasNext()){
Map.Entry<String,String> entry = it.next();
System.out.println(“键:”+ entry.getKey()+" 值:"+ entry.getValue()); -
Map的实现类:Hash Map和Tree Map
HashMap 底层也是基于哈希表实现 的。
HashMap的存储原理:
往HashMap添加元素的时候,首先会调用键的hashCode方法得到元素 的哈希码值,然后经过运算就可以算出该
元素在哈希表中的存储位置。
情况1: 如果算出的位置目前没有任何元素存储,那么该元素可以直接添加到哈希表中。情况2:如果算出 的位置目前已经存在其他的元素,那么还会调用该元素的equals方法与这个位置上的元素进行比较
,如果equals方法返回 的是false,那么该元素允许被存储,如果equals方法返回的是true,那么该元素被视为
重复元素,不允存储。
TreeMap
TreeMap也是基于红黑树(二叉树)数据结构实现 的, 特点:会对元素的键进行排序存储。
TreeMap 要注意的事项:
1. 往TreeMap添加元素的时候,如果元素的键具备自然顺序,那么就会按照键的自然顺序特性进行排序存储。
2. 往TreeMap添加元素的时候,如果元素的键不具备自然顺序特性, 那么键所属的类必须要实现Comparable接口,把键
的比较规则定义在CompareTo方法上。
- 往TreeMap添加元素的时候,如果元素的键不具备自然顺序特性,而且键所属的类也没有实现Comparable接口,那么就必须
在创建TreeMap对象的时候传入比较器。
- Eclipse常用快捷键:
1.内容提示:Alt + /
2.快速修复:Ctrl + 1
3.导包:Ctrl + shift + O
4.格式化代码块:Ctrl + Shift + F
5.代码位置调换:Alt+上下键
6.添加/除去单行注释:Ctrl+/
7.添加/除去多行注释:
Ctrl+Shift+/
Ctrl+Shift+
8.复制行: Ctrl+Alt+向下键