Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值
HashMap<K,V>:存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。
LinkedHashMap<K,V>:HashMap下有个子类LinkedHashMap,存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法
重点:遍历的四种方式:
public static void main(String[] args) { HashMap<String,Integer> map=new HashMap<String,Integer>(); //存值 map.put("张三", 18); map.put("李四", 20); map.put("王五", 30); map.put("张三", 20); //删除元素 //map.remove("李四"); //取值 //int value=map.get("李四"); //System.out.println(value); //遍历 //1.keyset+增强for //获取所有key所在的set集合 /*Set<String> keys=map.keySet(); //遍历取到每一个key值 for(String key:keys){ System.out.println(key+map.get(key)); }*/ //2.keySet+Iterator迭代器 //获取所有key所在的set集合 //Set<String> keys=map.keySet(); //获取迭代器对象 //Iterator<String> it=keys.iterator(); //遍历取到每一个key /*while(it.hasNext()){ String key=it.next(); //根据key获取对应值 System.out.println(key+map.get(key)); }*/ //3.entrySet+增强for //获取所有结婚证对象(Entry)所在的set集合 /*Set<Map.Entry<String,Integer>> entrys=map.entrySet(); //遍历取到每一个结婚证对象 for(Map.Entry<String,Integer> entry:entrys){ //获取key String key=entry.getKey(); //获取值 int value=entry.getValue(); System.out.println(key+value); }*/ //entry+迭代器 //获取所有结婚证对象所在的set集合 Set<Entry<String, Integer>> entrys=map.entrySet(); //获取迭代器对象 Iterator<Entry<String, Integer>> it=entrys.iterator(); //遍历取到每一个结婚证对象 while(it.hasNext()){ Entry<String, Integer> entry=it.next(); //获取key String key=entry.getKey(); //获取值 int value =entry.getValue(); System.out.println(key+value); }