HashMap:是基于哈希表的Map接口实现。
* 哈希表的作用是用来保证键的唯一性的。
*
* HashMap<String,String>
* 键:String
* 值:String
*/
package Day18; import java.util.HashMap; import java.util.Set; public class Map2 { public static void main(String[] args) { //创建HashMap集合 HashMap<String,String> AA = new HashMap<String,String>(); //向集合中添加数据元素 AA.put(\"0x001\",\"马云\"); AA.put(\"0xOO2\",\"马化腾\"); AA.put(\"0x003\",\"柳传志\"); AA.put(\"0xOO4\",\"张朝阳\"); //对HashMap集合进行遍历 //利用键值----进行遍历 //首先创建键的集合 Set<String> AB = AA.keySet(); //对键集合进行遍历 for(String e: AB){ ///利用键获取对应的键值 String ABC = AA.get(e); //输出通过键获得的值 System.out.println(ABC); } } }
/*
* HashMap<Integer,String>
* 键: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, \"林青霞\"); // 下面的写法是八进制,但是不能出现8以上的单个数据 // hm.put(003, \"hello\"); // hm.put(006, \"hello\"); // hm.put(007, \"hello\"); // hm.put(008, \"hello\"); // 遍历 Set<Integer> set = hm.keySet(); for (Integer key : set) { String value = hm.get(key); System.out.println(key + \"---\" + value); } // 下面这种方式仅仅是集合的元素的字符串表示 // System.out.println(\"hm:\" + hm); } }
HashMap<String,Student>
* 键:String 学号
* 值:Student 学生对象
学生类
package Day18; 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; } }
测试类
package Day18; import java.util.HashMap; import java.util.Set; public class Map3 { public static void main(String[] args) { //创建集合 HashMap<String,Student> AA = new HashMap<String,Student>(); //创建学生类对象 Student A = new Student(\"赵同刚\",24); Student B = new Student(\"朱庆娜\",24); //给集合对象添加元素 AA.put(\"001\",A); AA.put(\"002\",B); //进行对集合的键值遍历 //创建键的集合 Set<String> ABC = AA.keySet(); //进行对键的集合遍历---来获取每个键所对应的键值 for(String e: ABC){ //使用键--来获取对应的集合的键值 Student ABCD = AA.get(e); //输出进行查看遍历的键和值 System.out.println(e+\"--\"+ABCD.getName()+\"--\"+ABCD.getAge()); } } }
HashMap<Student,String>
* 键:Student
* 要求:如果两个对象的成员变量值都相同,则为同一个对象。
* 值:String
学生类
package Day18; import java.util.Objects; 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; } //重写HashCode和equals方法 //使Set集合输出时不会出现重复值 @Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Student)) return false; Student student = (Student) o; return getAge() == student.getAge() && Objects.equals(getName(), student.getName()); } @Override public int hashCode() { return Objects.hash(getName(), getAge()); } }
测试类
package Day18.User; import Day18.Student; import java.util.HashMap; import java.util.Set; public class Map4 { public static void main(String[] args) { //创建集合对象 HashMap<Student,String> AA = new HashMap<Student,String>(); //创建学生类对象 //键相同则键值存在覆盖 Student A = new Student(\"赵同刚\",24); Student B = new Student(\"朱庆娜\",24); Student C = new Student(\"赵同刚\",24); Student D = new Student(\"王丽丽\",24); //向集合中添加元素 AA.put(A,\"有钱\"); AA.put(B,\"漂亮\"); AA.put(C,\"删除\"); AA.put(D,\"幸运\"); //遍历 //首先将所有键放到一个集合中 //Set类型是键的类型----创建键的集合 Set<Student> ABC= AA.keySet(); //对集合进行遍历 for(Student e: ABC){ //利用键获取键值 String ABCD = AA.get(e); System.out.println(e.getName()+\"--\"+e.getAge()+\"---\"+ABCD); } } }
来源:https://www.cnblogs.com/ztg-java-xuexi/p/16065211.html
本站部分图文来源于网络,如有侵权请联系删除。