java.util.map<k,v>集合Map是一个接口
Map集合的特点:
1、Map集合是一个双列集合,一个元素包含两个值(一个是key,一个是value)
2、Map集合中的元素,key和value的数据类型可以相同也可以不同
3、Map集合中 元素,Key是不允许重复,value可以重复
4、Map集合中的元素,key和value是一一对应
java.util.hashMap<k,v>集合implements Map<k,v>接口
HashMap集合的特点:
1、HashMap集合底层是哈希表:查询速度特别快
2、HashMap集合是一个无序集合,存储元素和取出元素顺序有可能不同
java.util.LinkedHashMap<k,v>集合extends HashMap<k,v>集合
LikedHashMap的特点:
1、LinkedHashMap集合底层是哈希表+链表(保证迭代的顺序)
2、LinkedHashMap集合是一个有序的集合,存储元素和取出元素的顺序是一致的
常用方法:1、public V put (K key,V value):把指定的值加入Map集合中
返回值:V
在存储的时候,Key不能重复,返回值是null
存储值对的时候key重复,会使用新的value替换map中重复的value,返回被替换的value
2、public V remove (Object key):把指定的键所对应的键值对应的元素再Map中删除,返回删除的值
返回值:V,若k存在,v返回被删除的值,k不存在,v返回null
3、public V get(Object key):根据指定的键,在Map集合中获取对应的值
返回值:key存在,返回对应的value值,key不存在,返回的是null
4、boolean containsKey(Object key)判断集合中是否包含指定的键
包含返回true不包含返回false
import java.util.HashMap;
import java.util.Map;
public class demoCollection {
public static void main(String[] args) {
show();
show1();
show3();
show4();
}
public static void show(){
Map<String,String> map=new HashMap<>();
/*public V put (K key,V value):把指定的值加入Map集合中
返回值:V
在存储的时候,Key不能重复,返回值是null
存储值对的时候key重复,会使用新的value替换map中重复的value,返回被替换的value*/
String a=map.put("李晨","范冰冰1");
String b=map.put("李晨","范冰冰2");
System.out.println(a);
System.out.println(b);
System.out.println(map);
map.put("冷锋","龙小云");
map.put("杨过","小龙女");
map.put("尹志平","小龙女");
System.out.println(map);//{杨过=小龙女, 尹志平=小龙女, 李晨=范冰冰2, 冷锋=龙小云}
}
public static void show1(){
/*public V remove (Object key):把指定的键所对应的键值对应的元素再Map中删除,返回删除的值
返回值:V,若k存在,v返回被删除的值,k不存在,v返回null*/
Map<String,Integer> map=new HashMap<>();
map.put("赵丽颖",163);
map.put("杨颖",165);
map.put("林志玲",173);
System.out.println(map);
Integer v=map.remove("林志玲");
System.out.println("v:"+v);
System.out.println(map);
Integer v2=map.remove("林志颖");//如果没有这个值,那么返回的值就是空
System.out.println(map);
System.out.println(v2);
}
public static void show3(){
Map<String,Integer> map=new HashMap<>();
map.put("赵丽颖",163);
map.put("杨颖",165);
map.put("林志玲",173);
Integer a=map.get("林志颖");
System.out.println(a);
Integer b=map.get("林志玲");
System.out.println(b);
}
public static void show4(){
//boolean containsKey(Object key)判断集合中是否包含指定的键
//包含返回true不包含返回false
Map<String,Integer> map=new HashMap<>();
map.put("赵丽颖",163);
map.put("杨颖",165);
map.put("林志玲",173);
Boolean a=map.containsKey("赵丽颖");
System.out.println(a);
boolean b=map.containsKey("林志玲");
System.out.println(b);
}
}
遍历Map集合
Map集合的第一种遍历方式;通过键找值的方式
Map集合中的方法:
Set keySet()返回此映射中包含的键的Set视图
实现步骤:1、使用Map集合中的方法keySet()把集合重点key取出来存储到一个集合Set集合中
2、遍历set集合,获取Map集合中的每一个key
3、通过Map集合中的方法get(key)通过key找到value
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class demoKeySet {
public static void main(String[] args) {
Map<String,Integer> map=new HashMap<>();
map.put("赵丽颖",163);
map.put("杨颖",165);
map.put("林志玲",173);
//使用Map集合中的方法keySet()把集合重点key取出来存储到一个集合Set集合中
Set<String> set=map.keySet();
//遍历set集合,获取Map集合中的每一个key
Iterator<String> it=set.iterator();
while(it.hasNext()){
//通过Map集合中的方法get(key),通过key找value
String key=it.next();
Integer value=map.get(key);
System.out.println(key+"="+value);
}
//使用增强for遍历Set集合
for(String key:set){
//通过Map集合中的方法get(key),通过key找value
Integer value=map.get(key);
System.out.println(key+"="+value);
}
}
}
标题Map遍历第二种方式;使用Entry对象遍历
Map遍历第二种方式;使用Entry对象遍历
Map集合中的方式:
Set<Map.Entry<K,V>> entrySet()返回此映射中包含的映射关系的Set视图
实现步骤:1、使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中
2、遍历Set集合,获取每一个Entry对象
3、使用Entry对象中的方法getKay()和getValue()获取键与值
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Iterator;
public class demoEntry {
public static void main(String[] args) {
Map<String,Integer> map=new HashMap<>();
map.put("赵丽颖",163);
map.put("杨颖",165);
map.put("林志玲",173);
//使用Map集合中的方法entrySet(),把Map集合中多个Entry对象取出来,存储到一个Set集合中
Set<Map.Entry<String,Integer>> set=map.entrySet();
//遍历Set集合,获取每一个Entry对象
Iterator<Map.Entry<String,Integer>> it=set.iterator();
while(it.hasNext()){
Map.Entry<String,Integer>entry= it.next();
//使用Entry对象中的方法getKay()和getValue()获取键与值
String key= entry.getKey();
Integer value= entry.getValue();
System.out.println(key+"="+value);
}
for (Map.Entry<String,Integer> entry:set){
//使用Entry对象中的方法getKay()和getValue()获取键与值
String key= entry.getKey();
Integer value= entry.getValue();
System.out.println(key+"="+value);
}
}
}