Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Java Collection Návody

Častou chybou zo strany nových programátorov je ukladať všetky kolekcie dát v jednoduchých polí . Kým základné pole je veľká dátová štruktúra , má rad nedostatkov , ktoré sa možno vyhnúť pomocou niektorej z ďalších základných dátových štruktúr . Java zbierky Framework poskytuje sadu ľahko použiteľné rozhranie a tried , ktoré implementujú niektoré z najčastejších dátových štruktúr v informatike . Základné Array

Najlepšia vec , o základnom poľa v Jave je to , že môže čítať a zapisovať rýchlo . Avšak , neustále pridanie alebo odobratie prvku z poľa vyžaduje veľa času , pretože Java nepodporuje dynamické pole . Zakaždým , keď zmeníte veľkosť poľa v Jave , je nutné znova vytvoriť pole znova od nuly , jeden prvok v čase , s pútkom . Tomu sa môžete vyhnúť tým , že vždy pri inicializácii svoje pole na maximálnu veľkosť požadovaného kedykoľvek počas behu , ale to môže byť dramatická strata pamäti a je len zlý dizajn všeobecne .
ArrayList

triedy ArrayList z knižnice java.util rieši niektoré z týchto problémov tým , že balí sadu manažérskych funkcií okolo skrytého poľa . Toto pole je strategicky zvyšuje a veľkosť tak , že v priemere , pridávanie a odoberanie prvkov dochádza veľmi rýchlo klesala pravidelne . Ale občas , skrytý , vnútorné pole má proste byť upravovaná , a v týchto prípadoch , bude operácia vyžadovať oveľa väčšie množstvo času .
LinkedList

LinkedList ide ďalej ako ArrayList a v skutočnosti nemá žiadnu pole vôbec , skryté alebo nie . Namiesto toho , záznamy sú reťazenie spoločne v uzloch , pričom každý uzol , ktorý obsahuje odkaz na adresu pamäti o ďalšie. Výhodou LinkedList je , že pridaním alebo odstránením nových kúskov dát dochádza vždy veľmi rýchlo , čas a nikdy nie je akákoľvek zmena veľkosti poľa , ktoré majú byť vykonané . Avšak , to je nemožné , aby prístup k dátam v polovici zoznamu , bez toho, aby prechádzal celý zoznam z prednej alebo zadnej , takže čas potrebný na načítanie dát zo stredu LinkedList môžu byť značné .

ArrayList umožňuje dát kdekoľvek v nej byť prístup veľmi rýchlo , a obvykle môže zmeniť veľkosť rýchlo , ale niekedy vyžaduje viac času , kedy potrebuje jeho vnútorné pole , ktoré majú byť prestavaný . LinkedList môžete vždy pridať a veľmi rýchlo odstrániť dáta zo zoznamu , ale načítanie dát z polovice zoznamu môže byť časovo náročné . To je LinkedList dobrou voľbou pre komíny a fronty , ktoré budú prístupné len pri veľmi dopredu alebo dozadu , ale ArrayList lepšou voľbou ako celkové nahradenie pre jednoduché polia .
HashSet

HashSet , ako aj ArrayList a LinkedList , umožňuje dáta majú byť pridané , a veľmi , veľmi rýchlo odstránené , a to tiež má ešte jednu výhodu : HashSet možno vyhľadávať veľmi rýchlo , rýchlejšie , než polia , ArrayLists alebo LinkedLists . Je to tým , že vykonáva matematické operácie na kuse údajov na určenie jej index v poli , a potom vykonávajúci rovnakú činnosť na základe údajov , ktoré majú byť hľadali získať index údajov požadovaných .

to je mätúce , nebojte sa . Dôležité je , že HashSets sú skvelé pre súbory dát , ktoré budú musieť byť prehľadávané znova a znova . Ale aj oni majú významnú slabosť : HashSet neudržiava poradí dát , ktorá je umiestnená do neho , a usporiadanie prvkov v sade môže meniť od jedného okamihu k druhému . Napríklad , v základnom poli , ak prvok je umiestnený na indexe 0 , programátor môže spoľahnúť na to zostáva na indexe 0 navždy , kým sa to zmení . Ale v HashSet , prvok na indexe 0 v jednom okamihu môže byť aj na indexe 327 v nasledujúcom okamihu .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené