Tabeller i Java



Data

Tabeller i Java

av Ole Petter den 13. november 2019

Sist oppdatert: 26 november, 2019 kl 11:25

Tabeller, eller Array på engelsk er en sammensetning av verdier i den samme datatypen, under ett navn i hurtigminnet.

Tabeller kan visualisere data og gi en god oversikt ved utvikling av programmer. Et eksempel kan være en timeplan på jobb eller skole.

Verdiene i en tabell adresseres ved posisjonen den har, altså indeksen. Tabeller fra Excel eller databaser tillater en blanding av datatyper som tekst og tall osv, men i Java må data av ulik type håndteres hver for seg.

En tabell kan inneholde tekst, mens en annen kan inneholde tall, tabeller i Java kan ikke inneholde begge samtidig.

Les mer om tabeller på w3schools.

Contents

1 Et eksempel på en tabell

Nedenfor er et eksempel på bruk av tabeller i java.

Først importeres en pakke fra Java:
«import static java.lang.System.*; «
Denne gjør at man slipper å skrive «System.out.println» hver gang man skal skrive ut til konsollet. En liten detalj, men det sparer litt tid og ekstra arbeid ved større program.

Filen lagres som Cars.java, og klassen kalles for «Cars».

Som vanlig må main-metoden fylles ut før man kan kjøre et program, og inne i main-metoden lagres en tabell i en variabel kalt cars. Merk []-tegnet etter String. Dette forteller Java at variabelen er en tabell som inneholder flere tekstelementer.

import static java.lang.System.*;

public class Cars {

  public static void main(String[] args) {

    String[] cars = {"Volvo", "BMW", "Ford", "Mazda"};

    for (int i = 0; i < cars.length; i++) {

      out.println(cars[i]);

    }

  }

}

For å vise alle elementene i tabellen looper jeg gjennom tabellen med en for-løkke. Løkken starter på 0, siden tabeller i Java er 0-basert, altså starter første element med indeks på 0, andre element med indeks 1 og så videre.

Variabelen i brukes for å vise til indeksen i tabellen, løkken starter på 0, i inkrementeres med +1 for hvert element inntil i er like stor som lengden til tabellen, altså «cars.length».

Da avsluttes løkken, og skriver ut hvert objekt i tabellen til konsollet.

Utskriften av konsollet var vellykket, og nedenfor ser du utskriften.

Når programmet kjøres får vi en utskrift av bilene i tabellen «Cars».

2 Lage en tabell av brukerinput

For å lage et program som leser inn brukerens input, må java-biblioteket JOptionPane importeres. Dette er et bibliotek som altså gjør det mulig for brukeren å skrive inn tekst eller tall til programmet, som kan lagres i en variabel.

All tekst som skrives inn lagres som en String, altså må tall som skrives inn i feltet parses til tallformat, altså integer. Dette kan gjøres ved å importere et annet bibliotek, kalt Integer.

import static java.lang.System.*;
import static java.lang.Integer.*; // Brukes til å parse tekst til tall
import static javax.swing.JOptionPane.*; // Bruk av dialogboks
import static java.lang.Math.*; // Matte-klassen
import java.util.*;  // Arrays-klassen

Steg 1 – lese inn tekst i dialogvinduet

For å lese inn tekst i dialogvinduet brukes funksjonen showInputDialog(«Forklarende tekst») til å vise en dialogboks som leser innskrevet tekst.

String tallTekst = showInputDialog("Gi antall biler (1-5):");

Denne teksten kan lagres i en String-variabel. Deretter kan man konvertere denne til en Integer ved behov.

I dette tilfellet skal brukeren skrive inn antall biler han vil sette inn i tabellen. Derfor må innskrevet tall lagret som tekst konverteres til integer.

Steg 2 – konvertere tekst til integer

Brukerens input lagret i variabelen tallTekst konverteres til tallformat ved denne metoden:

int antallBiler = parseInt(tallTekst);

Deretter lages tabellen biler, som samler navnet på bilene.

String[] biler = new String[antallBiler];

Lengden på tabellen biler blir da antallBiler, som er antall elementer brukeren skriver inn i dialogvinduet ved programkjøring.

Brukeren blir bedt om å skrive inn antall

Steg 3 – lese inn bilnavn

For å lese inn bilnavn må vi først lage en for-løkke som kjører like mange ganger som antallbiler, altså antallet biler bruker har sagt han vil legge til i tabellen.

Hvis brukeren skriver inn tallet 5, vil for-løkken da kjøre 5 ganger, og be brukeren skrive inn en ny bil 5 ganger. Innlest data vil da settes inn i tabellen biler, til taket er nådd, altså i = 5.

for (int i = 0; i < antallBiler; i++) {

      tallTekst = showInputDialog("Gi bil nr " + (i+1) + ":");

      String inntekst = tallTekst;

      biler[i] = inntekst;

}
Bruker blir bedt om å skrive inn bil nr 1 i dialogvinduet
I konsollet vises bilene i tabellen hvor brukeren selv har fylt inn dataene

Steg 4 – loope gjennom tabellen

For å vise alle elementene i tabellen brukes en for-løkke, slik som i innledningen av forrige avsnitt (1 et eksempel på en tabell).

Nok en gang brukes variabelnavnet i for å loope gjennom tabellen. i starter på 0, i er mindre en lengden til biler.length – altså lengden på tabellen biler. Og til slutt inkrementeres i så lenge i er lavere enn antallBiler.

    for (int i = 0; i < biler.length; i++) {

      out.println(biler[i]);

    }
import static java.lang.System.*;
import static java.lang.Integer.*;
import static javax.swing.JOptionPane.*;
import static java.lang.Math.*;
import java.util.*;  // Arrays-klassen

public class Cars {

  public static void main(String[] args) {

  	String tallTekst = showInputDialog("Gi antall biler (1-5):");

  	int antallBiler = parseInt(tallTekst);

    String[] biler = new String[antallBiler];

    for (int i = 0; i < antallBiler; i++) {

      tallTekst = showInputDialog("Gi bil nr " + (i+1) + ":");

      String inntekst = tallTekst;

      biler[i] = inntekst;

    }

    for (int i = 0; i < biler.length; i++) {

      out.println(biler[i]);

    }

  }

}

Legg igjen en kommentar