HashMap:是基於哈希表的Map介面實現。 * 哈希表的作用是用來保證鍵的唯一性的。 * * HashMap<String,String> * 鍵:String * 值:String */ package Day18; import java.util.HashMap; import java. ...
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); } } }