Sparovani dvou mnozin
Tomáš Záluský
zalusky na centrum.cz
Středa Červenec 22 09:54:53 CEST 2009
Mno, pochopil jsem to tak, že A je nějaké universum a v B může být jen zanedbatelné procento, kvůli kterému nechceš procházet celé A.
Jakou ty množiny mají životnost a co znamená, že B je "často přenačtena"?
Pokud by vyhovoval inkrementální přístup, pak by možná stálo za zvážení:
1. dekorovat množinu B (pomocí např. http://collections.sourceforge.net/api/org/apache/commons/collections/collection/AbstractCollectionDecorator.html nebo AbstractMapDecorator)
2. na všechny operace měnící její obsah (add, remove...) pověsit kód, který najde příslušný prvek v A a C a aktualizuje v C mapování prvek:prvek resp. prvek:null
Pro počáteční naplnění C by stačilo něco na způsob průchodu, jak popisovali kolegové přede mnou.
Osobně si nejsem jist, zda bych se s tím na tvém místě chtěl dělat (pod "řádově stovky" si představuju jen 200-1999 :-), ale třeba ti to pomůže.
Tomáš
================================================
...with Ultimate flying is so easy...
http://www.frisbee.cz http://www.peaceegg.net
================================================
______________________________________________________________
> Od: michal.nikodim na asei.cz
> Komu: Java
> Datum: 21.07.2009 14:28
> Předmět: Re: Sparovani dvou mnozin
>
Diky za rozbor. Mel jsem ale vice vypichnout tu podminku, ze mnozina A
je 100% prvku a B ma jen 0-100% protilehlych prvku.
Z toho mi vyplyva, ze nemohu pouzit sesortovani a protilehlost prvku,
protoze nektere A prvky nemaji prvek v mnozine B.
Jde o mnoziny velikosti radove stovek prvku.
Tak nejak doufam, ze nekde existuje neco magickeho :-) co jen pouziju a
voala (Google collections ?)
Další informace o konferenci Konference