Map接口实现类:HashMap
Map接口的实现类HashMap
示例代码:
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Student student = (Student) o;
return age == student.age &&
Objects.equals(name, student.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
/**
* HashMap集合的使用
* 存储结构:哈希表(数组+链表+红黑树)
* 使用Key的hashcode和equals作为重复依据
*/
public class Demo {
public static void main(String[] args) {
//创建集合
HashMap<Student,String> student = new HashMap<>();
//1.添加元素
Student s1 = new Student("a",1);
Student s2 = new Student("b",2);
Student s3 = new Student("c",3);
student.put(s1,"A");
student.put(s2,"B");
student.put(s3,"C");
student.put(new Student("a",1),"E");
//student.put(s3,"D");
System.out.println(student.size());
System.out.println(student.toString());
//2.删除 根据Key删除
student.remove(s1);
System.out.println(student.toString());
System.out.println(student.size());
//3.遍历
//3.1使用KeySet();
for (Student key: student.keySet()){
System.out.println(key+":"+student.get(key));
}
//3.2使用entrySet();
for (Map.Entry<Student,String> entry:student.entrySet()){
System.out.println(entry.getKey()+":"+entry.getValue());
}
//判断
System.out.println(student.containsKey(new Student("b",2)));
System.out.println(student.containsValue("A"));
}
}