目前,我正在尝试返回:key
。使用具有50个或更多条目的(defn parent-component []
[:div
(for [[group-title group-data] @data]
^{:key group-title}
[child-component group-title group-data])])
参数。
HashMap
我将Id作为键和医生对象传递为值..
我的ArrayList
课很简单:
public static HashMap<String, Doctor> getDoctorHash(ArrayList<Doctor> doctorList) {
HashMap<String, Doctor> hm = new HashMap<>();
for(Doctor doctor : doctorList) {
hm.put(doctor.getId(), doctor);
}
return hm;
}
答案 0 :(得分:1)
不确定为什么要这样做,(你可以使用Java8流和filter
列表作为名字),但你很接近。
public static HashMap<String, Doctor> getDoctorHash(ArrayList<Doctor> doctorList) {
HashMap<String, Doctor> hm = new HashMap<>();
for(int i = 0; i < doctorList.size(); i++) {
hm.put(doctorList.get(i).getFirstName(), doctorList.get(i));
}
return hm;
}
或者,更简单地说
public static HashMap<String, Doctor> getDoctorHash(ArrayList<Doctor> doctorList) {
HashMap<String, Doctor> hm = new HashMap<>();
for(Doctor d : doctorList) {
hm.put(d.getFirstName(), d);
}
return hm;
}
然后,对于某些Doctor d = doctorMap.get("firstname")
firstname
答案 1 :(得分:0)
这不是一个解决方案,但可以用来从中推导出一个
由于你还没有说明控制台的输出是什么,我无法知道你有哪些具体的错误。
尽管如此,我创建了以下代码来给自己一个想法:
public class StartingPoint {
static String[] doctorNames = {"Potato", "Chocolate", "Something", "Name", "Unnamed"};
public static void main(String[] args) {
ArrayList<Doctor> doctorList = new ArrayList<>(5);
for (int i = 0; i < 5; i++) {
doctorList.add(new Doctor(doctorNames[i], doctorNames[i] + " last name", String.valueOf(i)));
}
HashMap<String, Doctor> someHashMap = getDoctorHash(doctorList);
for (int i = 0; i < 5; i++) {
System.out.println("The ID of the doctor number " + String.valueOf(i + 1) + " is: ");
System.out.println(someHashMap.get(doctorNames[i]).getId());
}
}
public static HashMap<String, Doctor> getDoctorHash(ArrayList<Doctor> doctorList) {
HashMap<String, Doctor> hm = new HashMap<>();
for(Doctor doctor : doctorList) {
System.out.println(doctor);
hm.put(doctor.getId(), doctor);
}
return hm;
}
}
事实证明,编译器就好像没有Doctor
对象这样的东西是项目ID(作为密钥)的值。然而,可以看出,当一个人试图打印出在其定义中传递给Doctor
函数的ArrayList
的{{1}}项中的每一个的内存中的位置时,完全没问题。
我不知道背后的原因是什么。
但是,如果不是使用getDoctorHash()
个对象作为值,而是使用其中一个Doctor
可以通过使用其中一个方法获得,那么一切都很顺利:
String