Map接口特点:
特点:存储一对数据(Key-Value),无序、无下标、键不可重复、值可以重复。
方法:
V put(K key,V value);//将对象存储到集合中,关联键值。key重复则覆盖原值。 Object get (Object key);//根据键获取对应的值。 keySet <key>;//返回所有key。 Collection<V> values();//返回包含所有值的Collection集合。 Set <Map.Entry<K,V>>; //键值匹配的Set集合。
基本使用:
import java.util.HashMap; import java.util.Map; /** * Map接口的使用 * 特点:(1)存储键值对(2)键不能重复,值可以重复(3)无序 */ public class Demo01 { public static void main(String[] args) { //创建Map集合 Map<String, String> map = new HashMap<>(); //添加元素 map.put("CN","中国"); map.put("UK","英国"); map.put("USA","美国"); // map.put("CN","zhongguo");//值会被替换,键不可以重复 // map.put("China","zhongguo");//值可以重复 System.out.println("元素个数:"+map.size()); System.out.println(map.toString()); //删除 map.remove("USA"); System.out.println("删除之后:"+map.size()); System.out.println(map.toString()); //遍历 //使用keySet(); System.out.println("———————————————keySet()遍历—————————————————"); for (String s : map.keySet()) { System.out.print(s+"——>"+map.get(s)+"\t"); } System.out.println("\n———————————————entrySet()遍历(效率更高 )—————————————————"); for (Map.Entry<String, String> entry : map.entrySet()) { System.out.print(entry.getKey()+"-->"+entry.getValue()+"\t"); } System.out.println(); //判断 System.out.println(map.containsKey("CN")); System.out.println(map.containsValue("泰国")); System.out.println(map.isEmpty()); } }
HashMap【重点】:
import java.util.HashMap; import java.util.Map; /** * HashMap集合的使用 * 存储结构:哈希表(数组+链表+红黑树) */ public class Demo02 { public static void main(String[] args) { //创建对象 HashMap<Student, String> hashMap = new HashMap<>(); Student p1 = new Student("张学友", 20); Student p2 = new Student("刘德华", 19); Student p3 = new Student("郭富城", 18); Student p4 = new Student("黎明", 18); //添加元素 hashMap.put(p1,"歌神"); hashMap.put(p2,"综合王"); hashMap.put(p3,"舞王"); hashMap.put(p4,"文艺王"); hashMap.put(new Student("张学友",20),"music"); System.out.println("元素个数:"+hashMap.size()); System.out.println(hashMap.toString()); //删除元素 // hashMap.remove(p1); // hashMap.clear(); // System.out.println("元素个数:"+hashMap.size()); // System.out.println(hashMap.toString()); //遍历 System.out.println("——————————————————keySet方法——————————————————————————"); for (Student student : hashMap.keySet()) { System.out.print(student.toString()+"-->"+hashMap.get(student)+"\t"); } System.out.println(); System.out.println("——————————————————entrySet方法——————————————————————————"); for (Map.Entry<Student, String> entry : hashMap.entrySet()) { System.out.print(entry.getKey()+"-->"+entry.getValue()+"\t"); } System.out.println(); //判断 System.out.println(hashMap.containsKey(new Student("张学友", 20))); System.out.println(hashMap.containsKey(p1)); System.out.println(hashMap.containsValue("文艺王")); } }