将多个项目添加到 hashmap

我正忙于一个需要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,我不知道如何使用列表在下拉列表中显示


慕丝7291255
浏览 135回答 3
3回答

HUX布斯

HashMap只需要两个参数:key和valuehttps://docs.oracle.com/javase/8/docs/api/index.html?java/util/HashMap.html本key应该是一个标识符是唯一的目标。在您的情况下,您正在使用id. 如果这是您的数据库表(或任何其他唯一数字)上的主键,则完全正确。其他字段需要一起包装成一个对象(或者单独存储在 HashMap 中,每个字段都有自己的唯一 id;根据您的问题,这看起来不像您在做什么)。你应该做这样的事情:&nbsp; &nbsp; final Customer customerObject = new Customer(CName, Surname, Number, Cell, Buiilding, Street, suburb, City, postal);&nbsp; &nbsp; hashmap.put(id, customerObject);创建自定义Customer类及其所有字段留给读者作为练习。

MM们

如果查看接口put方法的源代码,Map您会发现只能找到:put(K key, V value)这正是 aMap应该如何工作。您将一个键映射到一个值,这样您就可以快速访问它而不用遍历整个映射。因此,在您的情况下,我建议您将所有信息存储在一个 serperate 对象中,Customer并将其映射到客户的相关 id。如果您需要有效地查询客户数据(同时不使用 id),请考虑使用可以为您完成工作的数据库。

隔江千里

Put 方法是Map<K, V>.put(K key, V value)签名的。所以你不能只是添加值。首先弄清楚密钥应该是什么,然后使用 put 方法。您可以通过调用Map.get(Object key)方法使用键检索值。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java