Nejrychleji přes hašovací tabulky, tj. něco jako
HashMap<String,AbstractItem> podleJmena = new HashMap<String,AbstractItem>();
HashMap<Long,AbstractItem> podleAdresy = new HashMap<Long,AbstractItem>();
for(AbstractItem ai:pole) {
podleJmena.put(ai.getName(),ai);
podleAdresy.put(ai.getAddress(),ai);
...
}
...
AbstractItem nalezene = podleJmena.get("Karel");
Hašovací tabulka hledá víceméně v konstantním čase,
takže rychleji to už nejde. Je to samozřejmě za cenu
větší spotřeby paměti.
Makub
Martin Jedlička napsal(a):
> Zdravim,
>
> mam dotaz ohledne hledani objektu v poli.
>
> Mam tridu, ktera obsahuje atributy jmeno, adresa, stav, atd... tj. neco
> takovehoto:
>
> public abstract class AbstractItem {
> protected String m_name; = "";
> protected long m_address = 0;
> protected boolean m_state = false;
> ...
> }
>
>
> Tyto objekty mam potom v poli AbstractItem[].
>
> Ted bych potreboval metodu/zpusob, jak nejlepe a nejrychleji najit v
> poli AbstractItem[] objekt AbstractItem podle m_name nebo m_adress ci
> jineho atributu. Cili, pokud vyhledavam objekt podle jmena "Karel", tak
> mi to najde adekvatni objekt AbstractItem obsahujici jmeno Karel.
>
> Dekuju za kazdou radu.
>
> Martin
>
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Supercomputing Center Brno Martin Kuba
Institute of Computer Science email: [EMAIL PROTECTED]
Masaryk University http://www.ics.muni.cz/~makub/
Botanicka 68a, 60200 Brno, CZ mobil: +420-603-533775
--------------------------------------------------------------
smime.p7s
Description: S/MIME Cryptographic Signature
