Map
map和collction的区别:
-
map存储元素是成对出现的,键是唯一的,值可重复
-
Collection存储元素是单独的
map集合的数据结构只针对键有效,和值无关
collection的数据结构针对元素有效
功能
map集合的功能:
-
添加功能
V put(K key,V value):添加元素。
如果键是第一次存储,就直接存储元素,返回null
如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值
-
删除功能
void clear():移除所有的键值对元素
V remove(Object key):根据键删除键值对元素,并把值返回
-
判断功能
boolean containsKey(Object key):判断集合是否包含指定的键
boolean containsValue(Object value):判断集合是否包含指定的值
boolean isEmpty():判断集合是否为空
-
获取功能
Set<Map.Entry<K,V>> entrySet():
V get(Object key):根据键获取值
Set keySet():获取集合中所有键的集合
Collection values():获取集合中所有值的集合
-
长度功能
int size():返回集合中的键值对的对数
示例:
Map<String, String> map = new HashMap<>(); System.out.println(map.put("1", "tom"));//如果第一次存储,就直接存储元素,返回null System.out.println(map.put("1", "lili"));//如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值 System.out.println(map.put("2", "jack ")); //根据键获得相对应的值 System.out.println(map.get("1")); //获取键的集合 Set<String> s = map.keySet(); System.out.println(s); //containsKey判断集合是否包含指定的键 map.containsKey("1"); //containsValue判断集合是否包含指定的值 map.containsValue("lili"); //获取map集合 Set<Map.Entry<String, String>> set = map.entrySet(); System.out.println(set); //用迭代器输出 Iterator<Map.Entry<String, String>> iterator = set.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); } //遍历map 键找值 Set<String> keySet = map.keySet();//得到键的集合 for (String s1 : keySet) { //通过键找到值 String vaule = map.get(s1); System.out.println(s1+vaule); }
实现类
hashmap
键是哈希表结构,可以保证键的唯一性
LinekedHashMap
Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序。
TreeMap
键是红黑树结构,可以保证键的排序和唯一性
示例:
Map<String, String> map = new HashMap<>();
System.out.println(map.put("1", "tom"));//如果第一次存储,就直接存储元素,返回null
System.out.println(map.put("1", "lili"));//如果键不是第一次存在,就用值把以前的值替换掉,返回以前的值
System.out.println(map.put("2", "jack "));
//根据键获得相对应的值
System.out.println(map.get("1"));
//获取键的集合
Set<String> s = map.keySet();
System.out.println(s);
//containsKey判断集合是否包含指定的键
map.containsKey("1");
//containsValue判断集合是否包含指定的值
map.containsValue("lili");
//获取map集合
Set<Map.Entry<String, String>> set = map.entrySet();
System.out.println(set);
//用迭代器输出
Iterator<Map.Entry<String, String>> iterator = set.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
//遍历map 键找值
Set<String> keySet = map.keySet();//得到键的集合
for (String s1 : keySet) {
//通过键找到值
String vaule = map.get(s1);
System.out.println(s1+vaule);
}
实现类
hashmap
键是哈希表结构,可以保证键的唯一性
LinekedHashMap
Map 接口的哈希表和链接列表实现,具有可预知的迭代顺序。
TreeMap
键是红黑树结构,可以保证键的排序和唯一性