(1)用于存储任意键值对;(2)键:无序,无下标,不允许重复;
(3)值:无序,无下标,允许重复。
(1)
package com.qf.chapter_05; import java.util.HashMap; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class TestMap { public static void main(String[] args) { //1创建集合 Map<String, String> map=new HashMap<>(); //2添加元素 map.put("cn", "china"); map.put("usa", "americn"); map.put("uk", "england"); System.out.println(map.size()); System.out.println(map.toString()); //3删除 //map.remove("usa");//按键删除 //4遍历 //4.1 keySet()所有键 //Set<String> keySet=map.keySet(); for(String key:map.keySet() ) { System.out.println(key+"===="+map.get(key)); } //4.2 entrySet()所有键值对,更高效 //Set<Map.Entry<String, String>> entries=map.entrySet(); for(Map.Entry<String, String> entry:map.entrySet()) { System.out.println(entry.getKey()+"====="+entry.getValue()); } //5 System.out.println(map.containsKey("cn")); System.out.println(map.containsValue("china")); } }
运行效率快,线程不安全,允许使用null作为key or value
package com.qf.chapter_05; import java.util.HashMap; import java.util.Map; public class TestHashMap { public static void main(String[] args) { //没有添加元素时,table=null,size=0 HashMap<Student, String> students=new HashMap<>(); // Student s1=new Student("zps",100); Student s2=new Student("ww",200); Student s3=new Student("zll",140); students.put(s1, "jx"); students.put(s2, "hn"); students.put(s3, "hk"); System.out.println(students.size()); System.out.println(students.toString()); // for(Map.Entry<Student, String> entry:students.entrySet()) { System.out.println(entry.getKey()+" "+entry.getValue()); } } }
package com.qf.chapter_05; public class Student { private String name; private int num; public Student() { // TODO 自动生成的构造函数存根 } public Student(String name, int num) { super(); this.name = name; this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } @Override public String toString() { return "Student [name=" + name + ", num=" + num + "]"; } }
1、HashMap刚创建时,table=null,为了节省空间,当加入第一个元素时,table=16;
2、
存储结构为红黑树
其他操作与HashMap一样
reverse | 反转集合中元素顺序 |
binarySearch | 查找元素,要先排序 |
shuffle | 随机重置元素顺序 |
sort | 升序 |
copy | 复制,size要一样 |
toArray(new ) | list转数组 |
Arrays.asList | 数组转集合,集合不能添加和删除 |