亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將多個項目添加到 hashmap

將多個項目添加到 hashmap

慕絲7291255 2021-12-10 12:26:38
我正忙于一個需要edit texts從數據庫中填充下拉列表的程序,我正在使用哈希圖,但我需要在哈希圖中放置大約 10 列,因為有 10 個字段需要填充。這是我的代碼:        try {            ConnectionHelper conStr = new ConnectionHelper();            connect = conStr.connectionclass();            if (connect == null) {                Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show();            } else {                String query = "select * from Customers";                stmt = connect.prepareStatement(query);                rs = stmt.executeQuery();                ArrayList<String> dataF = new ArrayList<>();                hashmap = new HashMap<>();                while (rs.next()) {                    String id = rs.getString("CUSTOMER_ID");                    String CName = rs.getString("CUSTOMER_FIRST_NAME");                    String Surname = rs.getString("CUSTOMER_SURNAME");                    String Number = rs.getString ("CUSTOMER_TEL_NUMBER");                    String Cell= rs.getString ("CUSTOMER_CELL_NUMBER");                    String Buiilding= rs.getString ("CUSTOMER_BUILDING_NUMBER");                    String Street= rs.getString ("CUSTOMER_STREET");                    String suburb= rs.getString ("CUSTOMER_SUBURB");                    String City= rs.getString ("CUSTOMER_CITY");                    String postal= rs.getString ("CUSTOMER_ZIP_CODE");                    // value of database                    dataF.add(id);                    hashmap.put(id,CName,Surname,Number,Cell,Buiilding,Street,suburb,City,postal);                }                ArrayAdapter NoCoreAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, dataF);                customerselect.setAdapter(NoCoreAdapter);            }        } catch (SQLException e) {            e.printStackTrace();        }我使用 hashmap 的原因是因為我遵循的示例使用了 hashmaps,我不知道如何使用列表在下拉列表中顯示
查看完整描述

3 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

HashMap只需要兩個參數:key和value


https://docs.oracle.com/javase/8/docs/api/index.html?java/util/HashMap.html


本key應該是一個標識符是唯一的目標。在您的情況下,您正在使用id. 如果這是您的數據庫表(或任何其他唯一數字)上的主鍵,則完全正確。


其他字段需要一起包裝成一個對象(或者單獨存儲在 HashMap 中,每個字段都有自己的唯一 id;根據您的問題,這看起來不像您在做什么)。


你應該做這樣的事情:


    final Customer customerObject = new Customer(CName, Surname, Number, Cell, Buiilding, Street, suburb, City, postal);

    hashmap.put(id, customerObject);

創建自定義Customer類及其所有字段留給讀者作為練習。


查看完整回答
反對 回復 2021-12-10
?
MM們

TA貢獻1886條經驗 獲得超2個贊

如果查看接口put方法的源代碼,Map您會發現只能找到:

put(K key, V value)

這正是 aMap應該如何工作。您將一個鍵映射到一個值,這樣您就可以快速訪問它而不用遍歷整個映射。因此,在您的情況下,我建議您將所有信息存儲在一個 serperate 對象中,Customer并將其映射到客戶的相關 id。

如果您需要有效地查詢客戶數據(同時不使用 id),請考慮使用可以為您完成工作的數據庫。


查看完整回答
反對 回復 2021-12-10
?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

Put 方法是Map<K, V>.put(K key, V value)簽名的。所以你不能只是添加值。首先弄清楚密鑰應該是什么,然后使用 put 方法。您可以通過調用Map.get(Object key)方法使用鍵檢索值。


查看完整回答
反對 回復 2021-12-10
  • 3 回答
  • 0 關注
  • 133 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號