3中遍历HashMap方式
package C12_21;import java.util.Collection;
import java.util.HashMap;
import java.util.Set;
import java.util.Map.Entry;public class testHashMap {public static void main(String[] args) {//定义两个HashMap 集合HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();HashMap<Integer, Integer> m1 = new HashMap<Integer, Integer>();//添加单个 键值对m1.put(1, 11);m1.put(2, 22);//把m1加到map里面 添加另一个HashMap集合。map.putAll(m1);//keySet()方法来得到键 get(key) 得到值Set<Integer> s = map.keySet();for (Integer i : s) {int value = map.get(i);System.out.print("key:" + i + " value:" + value + "\t");}System.out.print("\n");//values 方法返回值 的 集合Collection<Integer> values = map.values();for (Integer i : values) {System.out.print("value:" + i + "\t");}System.out.print("\n");//Map.Entry entrySet()Set<Entry<Integer, Integer>> set = map.entrySet();for (Entry<Integer, Integer> entry : set) {System.out.print("key:" + entry.getKey() + " value:" + entry.getValue() + "\t");}}}
Result
key:1 value:11 key:2 value:22
value:11 value:22
key:1 value:11 key:2 value:22
Remove put 自定义类型
package C12_21;import java.util.HashMap;
import java.util.Map.Entry;
import java.util.Set;public class testStuMap {public static void main(String[] args) {// 定义一个学号id 为value 每个学生是 keyHashMap<Student, Integer> map = new HashMap<Student, Integer>();map.put(new Student("jack", 12), 1);map.put(new Student("jack", 12), 2);map.put(new Student("rose", 12), 3);Set<Entry<Student,Integer>> entry = map.entrySet();for (Entry<Student, Integer> entry2 : entry) {System.out.println(entry2);}//重写equals hashCode 会看作一个对象。Student s = new Student("jack", 12);if (map.containsKey(s)) {map.remove(s);}System.out.println("移除后:");Set<Student> set = map.keySet();for (Student stu : set) {System.out.println(stu);}/*put 可以做修改(覆盖)*remove(key)*clear() 移除全部* */}}class Student {String name;int age;public Student(String name, int age) {this.name = name;this.age = age;}public Student() {}@Overridepublic int hashCode() {final int prime = 31;int result = 1;result = prime * result + age;result = prime * result + ((name == null) ? 0 : name.hashCode());return result;}@Overridepublic boolean equals(Object obj) {if (this == obj)return true;if (obj == null)return false;if (getClass() != obj.getClass())return false;student other = (student) obj;if (age != other.age)return false;if (name == null) {if (other.name != null)return false;} else if (!name.equals(other.name))return false;return true;}@Overridepublic String toString() {return "student [name=" + name + ", age=" + age + "]";}
}
Result:
Student [name=jack, age=12]=2
Student [name=rose, age=12]=3
移除后:
Student [name=rose, age=12]