哈希表
特點(diǎn):
- 哈希表是散列的,一定情況下“鍵值對”順序會不一致。
- 哈希表在內(nèi)存中是一張表格(兩列:一列是:鍵,一列是:值)
Map是映射的意思;和視圖一樣
Map集合的特點(diǎn):每個元素是由兩個對象組成的
Map的格式:
Map<鍵,值> 名字 = new HashMap<鍵,值>();
Map中兩個鍵值得屬性都是非基本的屬性,根據(jù)問題的要求來
哈希表中的函數(shù):
- 添加鍵和值 map.put(鍵,值);
- 刪除鍵值:map.remov(鍵);
- 獲取某個鍵值:map.get(鍵);【需要打印出來】
- 獲取鍵(key)的方式:map.keyset();
哈希表如何遍歷(只需要獲得鍵 值)
1.需要將訪問的鍵保存到key里面
2.將key所映射的值打印出來
for(String key:map.keyset()){
System.out.println(map.get(key));
}
Map集合的遍歷:
方案一:
使用Map接口的keyset函數(shù)得到鍵的集合,對該集合進(jìn)行遍歷

方案一
方案二
使用Map結(jié)構(gòu)的entryset函數(shù)得到鍵值對的幾個,對該集合進(jìn)行遍歷

方案二
package Day13;
import java.util.Map;
import java.util.Scanner;
public class Dl {
public static void main(String[] args) {
Map<String,String> users=new java.util.HashMap<String,String>();
users.put("jft", "123456");
users.put("zx", "123");
Scanner sc=new Scanner(System.in);
System.out.print("請輸入賬號:");
String x=sc.next();
System.out.print("請輸入密碼:");
String y=sc.next();
if(users.get(x)==null) {
System.out.println("賬號不存在,登錄失敗");
}else if(users.get(x).equals(y)==false) {
System.out.println("密碼錯誤,登錄失敗");
}else {
System.out.println("登錄成功");
}
}
}
登錄測試
1.先創(chuàng)建哈希表,進(jìn)行導(dǎo)入。 登錄和密碼都是字符串格式
2.添加兩個賬號密碼,進(jìn)行保存
3.添加if判斷語句,通過get函數(shù)獲取用戶輸入的賬號
4.通過equals函數(shù)匹配賬號相應(yīng)的密碼,判斷正確