Pořád jste nikdo nevyvrátili to, co tady celou dobu tvrdím: ten kluk se ptá na stromy a datové struktury v Javě a nikdo jste mu, kromě mě, nevysvětlili, proč v 99.9% případů bude používat když už tak HashMapu a ne nějaké stromy.
Když už takovéhle triviality nevíte, pomohlo by vám, kdybyste se podíval do JavaDoc na to, jaké potomky má rozhraní
Map – podle toho zjistíte, jaké existují (alespoň ve standardní knihovně) specializace, čím se liší, a pak už se vám bude lépe uvažovat nad tím, k čemu by se mohly používat.
Takže zjistíte, že existuje např.
SortedMap, která má na rozdíl od obecné mapy klíče seřazené. To znamená, že můžete dělat takové věci, jako „dej mi výsek mapy od – do“, „dej mi všechny prvky větší než“. Implementací
SortedMap je např.
TreeMap, což je právě ten strom, na který se ptáte.
Abyste viděl nějaký hodně konkrétní příklad, tak když budete mít mapu osob, kde bude klíčem třeba datum a umožníte hledat rozsah údajů, třeba „vše za rok 2017“. V tom vám mapa, která umí prvky porovnávat pouze na ekvivalenci (což je třeba právě hashmapa) nepomůže, a potřebujete alespoň tu
SortedMap.
Pokud nerozumíte tomu, jak hashmapa funguje, zapomeňte na to, že je uvnitř nějaké pole (akorát vás to mate), a zapamatujte si hlavně to, že hashmapa umí porovnávat klíče pouze na ekvivalenci, neumí je porovnat větší/menší a neví tedy nic o jejich pořadí.