簡體   English   中英

如何在 hashmap 中存儲關於唯一鍵的多個值

[英]How to store multiple values in hashmap with respect to unique keys

嗨,我必須使用 UI 顯示的值來驗證數據庫值,所以我使用 Watij 作為自動化工具。 當我必須將數據庫值存儲到 hashmap 中時,就會出現問題。 假設數據庫有 3 個字段名稱、Email 和地址。 在觸發查詢后,獲取的行是 10。我將字段值作為 hashmap 中的鍵,並將檢索到的行作為值。

我無法將值存儲在 hashmap 中。 當我使用 hashmap 時,值被覆蓋,最后我總是得到各個鍵的單個值。 我嘗試聲明 hashmap 具有兩個參數作為字符串和字符串 [] 但我無法讀取最終值。 任何人都可以幫忙,因為我不是 java 專家。 謝謝。

你在哪里聲明了字符串? 您必須在循環中聲明它(循環通過結果集的位置)。 如果您不在循環內創建新的 object,則相同字符串的引用將存儲在 hashmap 的所有值中,您將在 hashmap 中獲得單個值。 如果這里也提到了代碼,那么很容易查明確切的問題。

好吧,在 map 中,密鑰必須是唯一的,因此如果您繼續添加 (email,blabla@hotmail.com) 並且它已經擁有 (email,nana@gmail.com) 他們將覆蓋第一個。 如果您想要的只是電子郵件、地址和姓名的列表,那么將 class 稱為人員或其他東西並將它們添加到列表中不是更好嗎?

喜歡 person(name,email,adress) 然后將其添加到列表中。

when storing object in hashmap, you can use the hashcode of that object as key and then can save the object itself as the value, but make sure that you implement hasCode() and equals method properly, as u know, hashmap internally used hashcode()和 'equals' 存儲數據的方法。

現在,在實現 hashcode 或 equals 方法時,您可以使用您認為唯一標識該行的任何屬性(該行的列)。

而且,在性能方面,這將是一種更好的方法。

您可以像HashMap<String, Data>一樣制作 map ,其中第一個參數是鍵(我想是String ,您可以使用您想要的),而Data是包含鍵數據值的 class 。 Data可能是:

public class Data {

    private String name;
    private String address;
    private String email;

    ...
}

您可以使用map.put(key, new Data(...))將 object 添加到 map。 更簡單的方法是在 map 中使用數組,例如HashMap<String,String[]> ,但不是很有用。 DB查詢的Java思想是創建object來封裝每條記錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM