En vektor (array på engelska) i Java används för att lagra en samling av samma datatyp, men det går också bra att tänka på en vektor som en samling variabler av samma typ. Vektorer i Java fungerar på ett indexbaserat system där varje index i vektorn har ett värde av samma typ.
Hur deklareras vektorer?
På varierande sätt dessutom följer andra begrepp som instansiering och initiering.
int heltal[]; //vektor deklaration med namn heltal heltal[] = new int[10]; //vektor instansiering kallas när variabeln tilldelas ett värde i storlek. Det är som ett exempel på vad vektorn ska innehålla. heltal[0] = 10; //vektor initiering. I index 0 placeras ett heltal som 10 heltal[1] = 20; //Denna gång är index 1 som tar emot heltalet 20
En vektor kan också deklareras så här:
int[] heltal; int []heltal; int heltal[];
Exempel:
public class VektorDemo1 { public static void main(String[] args) { //vektor deklaration, instansiering och initiering int heltal[] = {11, 22, 33, 44, 55}; // vektorns storlek eller längden räknas av Java automatiskt //Skicka till skärmen vektorns innehåll //egenskapen längden (length) returnerar vektors storlek for(int i=0;i<heltal.length;i++) System.out.println("Vektors index ["+i+"]: "+heltal[i]); } }
Returnerar:
Vektors index [0]: 11
Vektors index [1]: 22
Vektors index [2]: 33
Vektors index [3]: 44
Vektors index [4]: 55
Man kan skapa en vektor med element av andra datatyp, till exempel:
public class VektorDemo2 { public static void main(String[] args) { double[] d = {5.5, 3.5, 2.3, 3.4, 7.8}; char[] c = {'c', 'h', 'a', 'l', 'o'}; String[] progLang = {"C", "C++", "Java", "Python"}; for(int i=0;i<d.length;i++) System.out.println("Vektors index ["+i+"]: "+d[i]); for (int b=0;b<c.length;b++) System.out.println("Vektors index ["+b+"]: "+c[b]); for (int q=0;q<progLang.length;q++) System.out.println("Vektors index ["+q+"]: "+progLang[q]); } }
Vektors element
En vektors innehåll kallas element, till exempel
char[] c = {’c’, ’h’, ’a’, ’l’, ’o’};
’c’, ’h’, ’a’, ’l’, ’o’ är vektorns innehåll. De kan också kallas som första, andra, tredje element och så vidare. Elementen kan ändras förutsatt att nya elementen är av samma typ som de gamla.
char[] c = {’c’, ’h’, ’i’, ’c’, ’o’};
Vektors längd
Längden på en vektor fastställs när den skapas:
int[] heltal = new int[3]; heltal[0] = 11; heltal[1] = 12; heltal[2] = 13; heltal[3] = 14; // FEL! längden är 3 inte 4 element Ett annat alternativ att ange längden (3 element) är så här: int[] heltal = {11, 12, 13}
När längden har fastställts går det inte att ändra vektorns längden. Vektors längd definieras som ett konstantvärde eller FINAL. Med andra ord kan man inte minska eller öka antal element i vektorn i efterhand.
I Java kan vektorns längd tas fram med variabeln .length
public class VektorDemo3 { public static void main(String[] args) { double[] d = {5.5, 3.5, 2.3, 3.4, 7.8}; char[] c = {'c', 'h', 'a', 'l', 'o'}; String[] progLang = {"C", "C++", "Java", "Python"}; System.out.println("Vektor d längden är = " + d.length); System.out.println("Vektor c längden är = " + c.length); System.out.println(("Vektorn progLang längden är = " + progLang.length)); } }
Typer av vektorer
- Endimensionella
- Flerdimensionella
Hittills har i denna artikeln behandlats endimensionella vektorer som har sina element i en enda dimension, i en sekvens av data lagrad horisontellt. Endimensionella vektorer representeras oftast som en rad, men det går bra också att tänka en representation som en kolumn. Som det redan tagits upp i raderna ovan varje element särskiljas med indexvärde.
Flerdimensionella vektorer
En kombination av flera endimensionella vektorer, till exempel tvådimensionella vektorer.
En tvådimensionell vektor i java representerar flera rader och kolumner med data. Data i matris- eller tabellform kan representeras genom att använda tvådimensionell vektor.
En matris är en grupp av element ordnade i många rader och kolumner. På samma sätt kan vi ordna element i tvådimensionella vektorer för att lagra element i en matris eller tabell så här:
public class VektorFlerDimensionell2 { public static void main(String[] args) { // Tvådimensionell int[][] results = new int[3][5]; // Resultat för Alex results[0][0] = 91; results[0][1] = 85; results[0][2] = 75; results[0][3] = 88; results[0][4] = 99; // Resultat för Lukas results[1][0] = 87; results[1][1] = 75; results[1][2] = 95; results[1][3] = 98; results[1][4] = 100; // Resultat för Anna results[2][0] = 100; results[2][1] = 98; results[2][2] = 92; results[2][3] = 85; results[2][4] = 85; System.out.println("Student " + "|" + " Fysik " + "|" + " Matematik " + "|" + " Kemi " + "|" + " Historia " + "|" + " Idrott "); System.out.println("Alex H \t" + " " + results[0][0] + "\t\t" + results[0][1] + " \t" + results[0][2] + " \t" + results[0][3] + " \t" + " " + results[0][4]); System.out.println("Lukas T " + " " + results[1][0] + "\t\t" + results[1][1] + " \t" + results[1][2] + " \t" + results[1][3] + " \t" + " " + results[1][4]); System.out.println("Anna L \t" + " " + results[2][0] + "\t\t" + results[2][1] + " \t" + results[2][2] + " \t" + results[2][3] + " \t" + " " + results[2][4]); } }
En förbättra version med hjälp av for loop:
Under arbete ………