因此,我了解哈希映射通常具有键和值。我环顾四周,建议如果要显示3个值,则应使用嵌套的哈希图。但是现在,我无法从哈希图中获取数据。请给我有关如何改进以下代码的提示。
初始代码(有效)
String todo = task.getText().toString().trim();
String description = desc.getText().toString().trim();
Map<String, String> dataToSave = new HashMap<>();
dataToSave.put("todo", todo);
dataToSave.put("description", description);
当前代码(不起作用)
ListItems是一个Java类,其中定义了待办事项和描述。我想将userid映射到键,并将待办事项+描述作为值映射。
String todo = task.getText().toString().trim();
String description = desc.getText().toString().trim();
String userid = mAuth.getCurrentUser().getUid();
Map<String, ListItem> dataToSave = new HashMap<>();
dataToSave.put("user", userid);
dataToSave.put("todo", BLANK);
dataToSave.put("description", BLANK);
所以,我把空白表示的部分实际上是我需要帮助的部分。如何映射待办事项和说明?
谢谢。
答案 0 :(得分:0)
在我告诉您如何执行所要求的内容之前,您是否尝试过编译程序?就目前而言,您的程序将无法编译。您的哈希图期望一个对象类型为ListItem的值。在put()调用中传递的是String对象。
您的ListItem类看起来像这样吗?
1. Thu, 12 Jul 2018 09:31:37 GMT
2. 2018-07-12T09:31:38Z
如果是,那么您需要添加一个构造函数以实例化ListItem对象。这就是它的样子。
class ListItem {
String todo;
String description;
}
一旦获得待办事项和描述(问题中代码的前两行),就需要创建一个ListItem对象,将 todo 和 description 作为参数传递给构造函数。
class ListItem {
String todo;
String description;
ListItem(String to, String desc) {
todo = to;
description = desc;
}
}
完成此操作后,可以将ListItem对象添加到哈希图中。
ListItem listItem = new ListItem(todo, description);
要阅读待办事项和说明,您需要这样做-
Map<String, ListItem> dataToSave = new HashMap<>();
dataToSave.put(userId, listItem);
在这一点上,您似乎对对象没有太多的了解。我建议重新审视教科书中的基础知识,或者从网上阅读大量资源。