V tomto kurzu se dozvíme o třídě Vector a o tom, jak ji používat. Dozvíme se také, jak se liší od třídy ArrayList a proč bychom místo toho měli používat seznamy polí.
Vector
Třída je implementace List
rozhraní, které nám umožňuje vytvořit měnit velikost-pole podobné třídy ArrayList.
Java Vector vs. ArrayList
V Javě, jak ArrayList
a Vector
implementuje List
rozhraní a poskytuje stejné funkce. Existují však mezi nimi určité rozdíly.
Vector
Třída synchronizuje jednotlivé operace. To znamená, že kdykoli chceme provést nějakou operaci na vektorech, Vector
třída na tuto operaci automaticky použije zámek.
Je to proto, že když jedno vlákno přistupuje k vektoru a současně se k němu pokouší přístup další vlákno, ConcurrentModificationException
je generována výjimka s názvem . Proto toto nepřetržité používání zámku pro každou operaci snižuje účinnost vektorů.
V seznamech polí však nejsou metody synchronizovány. Místo toho používá Collections.synchronizedList()
metodu, která synchronizuje seznam jako celek.
Poznámka: Doporučuje se používat ArrayList
místo toho, Vector
protože vektory nejsou bezpečné pro vlákna a jsou méně účinné.
Vytvoření vektoru
Takto můžeme v Javě vytvářet vektory.
Vector vector = new Vector();
Zde Type označuje typ propojeného seznamu. Například,
// create Integer type linked list Vector vector= new Vector(); // create String type linked list Vector vector= new Vector();
Metody vektoru
Vector
Třída také poskytuje implementace měnit velikost-pole na List
rozhraní (podobné ArrayList
skupiny). Některé z těchto Vector
metod jsou:
Přidat prvky do vektoru
add(element)
- přidá prvek do vektorůadd(index, element)
- přidá prvek na zadanou poziciaddAll(vector)
- přidá všechny prvky vektoru do jiného vektoru
Například,
import java.util.Vector; class Main ( public static void main(String() args) ( Vector mammals= new Vector(); // Using the add() method mammals.add("Dog"); mammals.add("Horse"); // Using index number mammals.add(2, "Cat"); System.out.println("Vector: " + mammals); // Using addAll() Vector animals = new Vector(); animals.add("Crocodile"); animals.addAll(mammals); System.out.println("New Vector: " + animals); ) )
Výstup
Vektor: (pes, kůň, kočka) Nový vektor: (krokodýl, pes, kůň, kočka)
Přístup k vektorovým prvkům
get(index)
- vrací prvek určený indexemiterator()
- vrátí objekt iterátoru k sekvenčnímu přístupu k vektorovým prvkům
Například,
import java.util.Iterator; import java.util.Vector; class Main ( public static void main(String() args) ( Vector animals= new Vector(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); // Using get() String element = animals.get(2); System.out.println("Element at index 2: " + element); // Using iterator() Iterator iterate = animals.iterator(); System.out.print("Vector: "); while(iterate.hasNext()) ( System.out.print(iterate.next()); System.out.print(", "); ) ) )
Výstup
Prvek v indexu 2: Vektor kočky: Pes, Kůň, Kočka,
Odebrat vektorové prvky
remove(index)
- odebere prvek ze zadané polohyremoveAll()
- odstraní všechny prvkyclear()
- odstraní všechny prvky. Je to efektivnější nežremoveAll()
Například,
import java.util.Vector; class Main ( public static void main(String() args) ( Vector animals= new Vector(); animals.add("Dog"); animals.add("Horse"); animals.add("Cat"); System.out.println("Initial Vector: " + animals); // Using remove() String element = animals.remove(1); System.out.println("Removed Element: " + element); System.out.println("New Vector: " + animals); // Using clear() animals.clear(); System.out.println("Vector after clear(): " + animals); ) )
Výstup
Počáteční vektor: (pes, kůň, kočka) Odstraněný prvek: kůň Nový vektor: (pes, kočka) Vektor po vymazání (): ()
Jiné vektorové metody
Metody | Popisy |
---|---|
set() | změní prvek vektoru |
size() | vrací velikost vektoru |
toArray() | převede vektor na pole |
toString() | převede vektor na String |
contains() | prohledá vektor pro zadaný prvek a vrátí logický výsledek |