1、API介绍
2、构造方法
import java.util.HashMap;
import java.util.Map;
public class Demo2_HashMap {
public static void main(String[] args) {
//HashMap() 使用默认容量 16 和负载因子 0.75
HashMap<String, String> map = new HashMap();
System.out.println(map);
//HashMap(int) 自定义容量,使用默认负载因子 0.75f
HashMap<String, String> map2 = new HashMap(100);
System.out.println(map2);
//HashMap(int,float) 自定义容量以及负载因子
HashMap<String, String> map3 = new HashMap(100, 0.5f);
System.out.println(map3);
//HashMap(Map) 初始化集合元素
Map<String, String> map1 = new HashMap();
map1.put("七龙珠", "孙悟空");
HashMap<String, String> map4 = new HashMap(map1);
System.out.println(map4);//{七龙珠=孙悟空}
}
}
3、功能方法(与Map接口功能方法一致)
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
class Person {
String name;
int age;
public Person(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Person person = (Person) o;
return age == person.age &&
Objects.equals(name, person.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
public class Demo2_HashMap {
public static void main(String[] args) {
//需求:存储人类到Map集合中,确保人类必须唯一
//分析:1、人类唯一准则,姓名和年龄相同
// 2、将人类对象存储到Map集合key列中。
// 3、HashMap,底层哈希表,使用hashCode和equals()来确定是否存储数据。
Person p = new Person("孙悟空", 50);
Person p2 = new Person("鸣人", 22);
Person p3 = new Person("路飞", 18);
HashMap<Person,String> map = new HashMap<>();
map.put(p,"七龙珠");
map.put(p2,"火影忍者");
map.put(p3,"海贼王");
Person p4 = new Person("路飞",18);
String s = map.put(p4, "航海王");
System.out.println(s);
System.out.println(map);
}
}