30/09/2018, 23:39
Lỗi và Thắc mắc về HashMap trong java
Mình không hiểu tại sao lại có lỗi(Phần gần khu ghi chú) và cũng không hiểu cách hiển thị ở hàm Display.Mong ai đó giải thích giùm vs :))
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
public class DoctorHash {
HashMap lishHash = new HashMap();
Scanner input = new Scanner(System.in);
public void AddDoctor(){
System.out.println("Nhap vao ten bac sy: ");
String name = input.nextLine();
System.out.println("Cong viec: ");
String work= input.nextLine();
System.out.println("Ma: ");
int code = Integer.parseInt(input.nextLine());
System.out.println("So gio lam: ");
int hours = Integer.parseInt(input.nextLine());
DoctorDetails dt = new DoctorDetails(name, work, code, hours);
lishHash.put(code, name);
}
public void SearchDoctor(){
System.out.println("Nhap ma: ");
int search = Integer.parseInt(input.nextLine());
if(lishHash.containsKey(search)){
System.out.println("Bac sy can tim: "+lishHash.get(search));
}
}
public void DisplayAll(){
System.out.println("Danh sach: ");
// Set set = lishHash.keySet();//keySet():return the set in this map
// //Collection set = lishHash.values();
// Iterator iterator = set.iterator(); //iterator():Trả về một đối tượng Iterator
// //cho Collection mà có thể được sử
// //dụng để thu nhận một đối tượng
// int i = 1;
// while(iterator.hasNext()){// làm tnt để hiển thị dc tất cả các thông tin ve doctoc
// System.out.println(" "+i+" "+lishHash.get(iterator.next()));
// i++;// next():Trả về phần tử kế tiếp. Ném NoSuchElementException
// //nếu không có một phần tử kế tiếp
// }
/*Cach khac:
* Use EntrySet: bị lỗi:can not convert from element type Object to Map.Entry<Integer,String>
* */
for(Map.Entry<Integer, String> entry : lishHash.entrySet()){
System.out.println(entry.getKey()+": "+entry.getValue());
// Error: remove();
}
/*Cách khac:
* Use:keySet va for(): lại lỗi như cách trên>> why?
* */
// for(Integer key:lishHash.keySet()){
// System.out.println(key+"::"lishHash.get(key));
// //Error:remove();
// }
/*Cách khác:
* use:Iterator: ko lỗi
* */
// Iterator<Map.Entry<Integer,String>> iterator = lishHash.entrySet().iterator();
// while(iterator.hasNext()){
// Map.Entry<Integer, String> entry =iterator.next();
// System.out.println(entry.getKey()+": "+entry.getValue());
// // có thể su dung remove();
// }
}
}
Bài liên quan
Chuyển từ
HashMap lishHash = new HashMap();
sang
Map<Integer, String> lishHash = new HashMap();
Bạn có 2 lỗi ở đây: