Uložení a načtení prvku HashTable do/ze souboru – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Uložení a načtení prvku HashTable do/ze souboru – Java – Fórum – Programujte.comUložení a načtení prvku HashTable do/ze souboru – Java – Fórum – Programujte.com

 

Redby0
Návštěvník
10. 2. 2011   #1
-
0
-

Zdravim, řeším takovej problem. Mám Hastable do kterého si ukládám nějaké prvky. Všechno funguje, ale moje představa je že místo s pamětí by to pracovalo se souborem. Tzn. že chci přistupovat přímo k prvkum ze souboru. Takže nechci jít cestou uložit celou HashTable do souboru a pak ji zase celou načíst, ale načíst třeba jen jeden prvek a pak zase jen jeden uložit. Nějak jsem nikde nenašel jestli to je možné. Díky za radu

Nahlásit jako SPAM
IP: 85.132.191.–
D-Fox0
Stálý člen
10. 2. 2011   #2
-
0
-

Tak jestli potrebujes v dany okamzit cist nebo zapisovat jeden prvek, tak serializovat hashTabulku postrada smysl.

Takze bud pouzij databazy, nejaky textovy format a nebo si muzes pohrat z byte streamy.

Nahlásit jako SPAM
IP: 89.176.8.–
Redby0
Návštěvník
10. 2. 2011   #3
-
0
-

To D-Fox : No ani tak nepotrebuju, jen mi slo o pametovou usporu. I když je to jedno, protože pokud by jsem počítal s větším množství dat, tak asi nebudu používat Hashtabulku, ale nějakou databazi. Takže asi bude nejrozuměnší ukladat celou hashTabulku a pak ji celou načíst. Jen je škoda že při změně záznamu musím přepsat celej soubor a tomu jsem se chtěl vyhnout.

Nahlásit jako SPAM
IP: 85.132.191.–
D-Fox0
Stálý člen
10. 2. 2011   #4
-
0
-

Tak ono zalezi k cemu to potrebujes... kdyz tech dat nebude moc tak, tak si muzes drzet celou hashmapu po dobu behu programu v pameti a ukladat ji pouze kdyz program skonci nebo na pozadani (popripade v nejakem casovem intervalu).

Nahlásit jako SPAM
IP: 89.176.8.–
Redby0
Návštěvník
10. 2. 2011   #5
-
0
-

To D-Fox : Přesně tak jsem to měl na mysli. Šlo mi o to ošetřit případ pokud by bylo dat hodně. No ale v tomto případě by asi nebylo moc rozumné používat HashTable, že? Jinak je to semestrální práce, takže nic moc užitečného :-)

Nahlásit jako SPAM
IP: 85.132.191.–
D-Fox0
Stálý člen
10. 2. 2011   #6
-
0
-

Takhle je to tezke rict, zalezi kolik dat mas, jak moc ctes/zapisujes, kolik dat chces mit persistentnich a kolik jich vytvaris pouze k behu programu. Pouzit bud tu HashMapu nebo JDBC/SQLite. Mozna by bodlo znat tema semestralky :)

Nahlásit jako SPAM
IP: 89.176.8.–
Redby0
Návštěvník
10. 2. 2011   #7
-
0
-

To D-Fox : Tema: software pro ordinaci praktického lékaře, který bude umožňovat správu databáze pacientů a vedení jejich zdravotní dokumentace. Takze v hashtabulce mam karty pacientu, kde si vzdycky vytahnu tu kterou potrebuju a pridám k ní novej záznam o zdravotnim stavu. Podminkou je implementovat tabulku nebo avl strom. Zvolil jsem tedy tabulku.

Nahlásit jako SPAM
IP: 85.132.191.–
D-Fox0
Stálý člen
10. 2. 2011   #8
-
0
-

Neni nahodou zadanim mysleno ze si mas naimplementovat vlastni datovou strukturu. Tzn implementovat vlastni mapu a ne pouzivat jiz existujici implementace z SDK?

Nahlásit jako SPAM
IP: 89.176.8.–
nervak0
Věrný člen
10. 2. 2011   #9
-
0
-

A použití Hashtable je ta implementace tabulky jako alternativy k AVL-stromu ? :)
Každopádně nejjednodušší možnost čtení a zápisu dat na libovolné pozici v soboru poskytuje RandomAccessFile.

Nahlásit jako SPAM
IP: 213.211.51.–
Redby0
Návštěvník
10. 2. 2011   #10
-
0
-

To D-Fox : No to možná jo, ale nebylo to nikde přesně specifikováno. Myslím si a zároveň doufám že se to nebude moc řešit. Ostatně nebylo by to težké změnit. Trošku s tím počítám, takže je to na to připravený aby jsem to změnil:-)

Nahlásit jako SPAM
IP: 85.132.191.–
Redby0
Návštěvník
10. 2. 2011   #11
-
0
-

To nervak : Dalo by se tak říct. Výběr datové struktury je dle vlastního výběru. Děkuji za TIP. Kouknu na to.

Nahlásit jako SPAM
IP: 85.132.191.–
D-Fox0
Stálý člen
10. 2. 2011   #12
-
0
-

"Podminkou je implementovat tabulku" - to neznamena ze pouzijes existujici implementaci, ale ze naimplementujes vlastni :)
RandomAccessFile ti asi nepomuze, ten pouze zapisuje(cte) na libovolne misto souboru bajty. Ty ale chces cist/zapisovat prvky podle nejakeho klice.

Nahlásit jako SPAM
IP: 89.176.8.–
nervak0
Věrný člen
10. 2. 2011   #13
-
0
-

RandomAccessFile ti asi nepomuze, ten pouze zapisuje(cte) na libovolne misto souboru bajty.

A ta jeho data se skládají z čeho?

Ty ale chces cist/zapisovat prvky podle nejakeho klice.

Třída RedbyhoSemestralka překvapivě není součástí Javy.

Nahlásit jako SPAM
IP: 213.211.51.–
Redby0
Návštěvník
11. 2. 2011   #14
-
0
-

Děkuji za rady. Vyřešil jsem to uložením cele HashTabulky. Fakt je že v mém případě kdy mám pár dat tak to je zbytečné. Napíšu do komentáře že u většího množství dat to není štastné řešení.

Nahlásit jako SPAM
IP: 85.132.191.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 21 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý