HashMap集合的案例测试

xiaoxiao2021-02-28  44

HashMap集合的案例测试

HashMap类概述:键是哈希表结构,可以保证键的唯一性。HashMap案例:HashMap<String,String>HashMap<Integer,String>HashMap<String,Student>HashMap<Student,String>

1、HashMap<String,String>

package cn.itcast_02; import java.util.HashMap; import java.util.Set; /* * HashMap:是基于哈希表的Map接口实现。 * 哈希表的作用是用来保证键的唯一性的。 * * HashMap<String,String> * 键:String * 值:String */ public class HashMapDemo { public static void main(String[] args) { // 创建集合对象 HashMap<String, String> hm = new HashMap<String, String>(); // 创建元素并添加元素 // String key1 = "it001"; // String value1 = "马云"; // hm.put(key1, value1); hm.put("it001", "马云"); hm.put("it003", "马化腾"); hm.put("it004", "乔布斯"); hm.put("it005", "张朝阳"); hm.put("it002", "裘伯君"); // wps hm.put("it001", "比尔盖茨"); // 遍历 Set<String> set = hm.keySet(); for (String key : set) { String value = hm.get(key); System.out.println(key + "---" + value); } } }

2、HashMap<Integer,String>

package cn.itcast_02; import java.util.HashMap; import java.util.Set; /* * HashMap<Integer,String> * 键:Integer * 值:String */ public class HashMapDemo2 { public static void main(String[] args) { // 创建集合对象 HashMap<Integer, String> hm = new HashMap<Integer, String>(); // 创建元素并添加元素 // Integer i = new Integer(27); // Integer i = 27; // String s = "林青霞"; // hm.put(i, s); hm.put(27, "林青霞"); hm.put(30, "风清扬"); hm.put(28, "刘意"); hm.put(29, "林青霞"); // 遍历 Set<Integer> set = hm.keySet(); for (Integer key : set) { String value = hm.get(key); System.out.println(key + "---" + value); } // 下面这种方式仅仅是集合的元素的字符串表示 // System.out.println("hm:" + hm); } }

3、HashMap<String,Student>

package itcast_01; import java.util.HashMap; import java.util.Set; /* * HashMap<String,Student> * 键:String * 值:学生类 */ public class HashMapDemo3 { public static void main(String[] args) { // 创建集合 HashMap<String, Student> hm = new HashMap<String, Student>(); // 创建学生对象,并将学生对象添加进集合 Student s1 = new Student("刘德华", 55); Student s2 = new Student("郭富城", 56); Student s3 = new Student("汪峰", 40); Student s4 = new Student("张韶涵", 30); Student s5 = new Student("张韶涵", 33); hm.put("001", s1); hm.put("002", s3); hm.put("003", s3); hm.put("004", s4); hm.put("004", s5); // 遍历集合 Set<String> set = hm.keySet(); for (String key : set) { Student value = hm.get(key); System.out.println(key + "---" + value.getName() + "---" + value.getAge()); } } } *学生类********************************* package itcast_01; public class Student { private String name; private int age; public Student() { super(); } public Student(String name, int age) { super(); 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 int hashCode() { final int prime = 31; int result = 1; result = prime * result + age; result = prime * result + ((name == null) ? 0 : name.hashCode()); return result; } @Override public 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; } }

4、HashMap<Student,String>

package cn.itcast_02; import java.util.HashMap; import java.util.Set; /* * HashMap<Student,String> * 键:Student * 要求:如果两个对象的成员变量值都相同,则为同一个对象。 * 值:String */ public class HashMapDemo4 { public static void main(String[] args) { // 创建集合对象 HashMap<Student, String> hm = new HashMap<Student, String>(); // 创建学生对象 Student s1 = new Student("貂蝉", 27); Student s2 = new Student("王昭君", 30); Student s3 = new Student("西施", 33); Student s4 = new Student("杨玉环", 35); Student s5 = new Student("貂蝉", 27); // 添加元素 hm.put(s1, "8888"); hm.put(s2, "6666"); hm.put(s3, "5555"); hm.put(s4, "7777"); hm.put(s5, "9999"); // 遍历 Set<Student> set = hm.keySet(); for (Student key : set) { String value = hm.get(key); System.out.println(key.getName() + "---" + key.getAge() + "---" + value); } } } *学生类********************************* package itcast_01; public class Student { private String name; private int age; public Student() { super(); } public Student(String name, int age) { super(); 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 int hashCode() { final int prime = 31; int result = 1; result = prime * result + age; result = prime * result + ((name == null) ? 0 : name.hashCode()); return result; } @Override public 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; } }

转载请注明原文地址: https://www.6miu.com/read-2625616.html

最新回复(0)