Vektorer

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 ………