HashMap
package eight.map.hashmap; import java.util.HashMap; public class Test { public static void main(String[] args) { HashMap<String, String> hm = new HashMap<String, String>(); hm.put("龙龙","11"); hm.put("壮壮","22"); hm.put("坤坤","33");//如果有重复的键,键就不存了,值是覆盖的 System.out.println(hm.get("龙龙"));//根据键获取值 hm.remove("壮壮");//根据键删除键值对 System.out.println(hm); } }
package eight.map.hashmap;
import java.util.*;
public class StudentTest {
public static void main(String[] args) {
Student s1 = new Student("壮壮",24);
Student s2 = new Student("龙龙",30);
Student s3 = new Student("坤坤",36);
Student s4 = new Student("楠楠",25);
HashMap<Integer, Student> hm = new HashMap<Integer, Student>();
hm.put(11,s1);
hm.put(22,s2);
hm.put(33,s3);
hm.put(33,s4);//有相同的键,键不存了,值会覆盖
/*HsahMap 的三种遍历方式?
1,keySet() 获取所有的键
2.values() 获取所有的值
3.entrySet() 获取键值对*/
Set<Integer> k = hm.keySet();//返回所有键的集合
for (Integer ii : k){
System.out.println(ii);
}
System.out.println("------------");
Collection<Student> v = hm.values();//获取所有值的集合
for (Student student:v){
System.out.println(student);
}
System.out.println("------------");
Set<Map.Entry<Integer, Student>> en = hm.entrySet();//把键和值封装为一个entry对象
//迭代器遍历
Iterator<Map.Entry<Integer, Student>> it = en.iterator();
while(it.hasNext()){
Map.Entry<Integer, Student> next = it.next();
System.out.println(next.getKey());//获取键
System.out.println(next.getValue());//获取值
}
}
}
package eight.map.hashmap; import java.sql.SQLOutput; import java.util.HashMap; import java.util.Set; public class Test2 { public static void main(String[] args) { Student s1 = new Student("壮壮",26); Student s2 = new Student("龙龙",80); Student s3 = new Student("龙龙",80);//可以创建相同的对象,可以重复 Student s4 = new Student("楠楠",25);//但和HashSet一样,重写HashCode和equals方法后就不能重复了 HashMap<Student, Integer> hm = new HashMap<Student, Integer>(); hm.put(s1,11); hm.put(s2,22); hm.put(s3,33); hm.put(s4,44); Set<Student> ks = hm.keySet(); for (Student student:ks){ System.out.println(student); } } }