【发布时间】:2021-03-05 01:00:52
【问题描述】:
我正在浏览此示例代码,但无法遵循和理解该代码。
- 哪一部分是主函数的返回类型,哪一部分是属性和函数名。
- 然后我们可以添加 arraylist 作为 map 中键的值吗?
- 它是如何使用 for 循环使用 entryset() 进行迭代并将那些树类型的 Arraylist 放入 map 中的 --
public HashMap<String,ArrayList> splitToKategorieArrays(HashMap<Integer, Teilnehmer> teilnehmerListe )
你能解释一下那个函数类型吗?是返回类型为hashmap的函数吗?
public HashMap<String,ArrayList<Teilnehmer>> splitToKategorieArrays(HashMap<Integer, Teilnehmer> teilnehmerListe ){
ArrayList<Teilnehmer> junioren = new ArrayList<Teilnehmer>();
ArrayList<Teilnehmer> senioren = new ArrayList<Teilnehmer>();
ArrayList<Teilnehmer> elite = new ArrayList<Teilnehmer>();
HashMap<String, ArrayList<Teilnehmer>> teilnehmerSplit = new HashMap<String, ArrayList<Teilnehmer>>();
for(Map.Entry<Integer, Teilnehmer> entry : teilnehmerListe.entrySet()) {
Teilnehmer teilnehmer = entry.getValue();
if (teilnehmer.getKategorie() == 1){
junioren.add(teilnehmer);
} else if (teilnehmer.getKategorie() == 2){
senioren.add(teilnehmer);
} else if (teilnehmer.getKategorie() == 3){
elite.add(teilnehmer);
}
}
teilnehmerSplit.put("junioren",junioren);
teilnehmerSplit.put("senioren",senioren);
teilnehmerSplit.put("elite",elite);
return teilnehmerSplit;
}
【问题讨论】:
-
是的,就是方法的返回类型。你的困惑在哪里?你认为它还能是什么?
-
是的。一个函数可以返回一个
HashMap。就像它可以返回任何其他类型的对象一样。 -
是的。该方法创建一个新的
HashMap,将三个条目放入该HashMap,然后返回它。所以返回类型是HashMap<String,ArrayList<Teilnehmer>>。当您调用此方法时,您可能希望将其返回值分配给该类型的变量。或者可能只是Map<String,ArrayList<Teilnehmer>>。 -
@DawoodibnKareem 你能解释一下 for 循环是如何工作的吗..
-
当然。该循环仅遍历
teilnehmerListe中的条目,将每个条目复制到三个新列表之一,具体取决于其Kategorie。