Gå til innhold

[Løst] Søkealgoritme - Finne heltall i Array


Anbefalte innlegg

Hei.

 

Jeg holder med med en oppgave hvor jeg har opprettet en tabell med heltallsverdier. Brukeren skal så taste inn et heltall vi tasaturet, og Java skal så skrive ut indeksnummeret til alle stedene i tabellen hvor denne verdien forekommer.

 

Jeg har litt problemer med å skrive en metode som kan gjøre dette. Ideen min er å opprette en ny tabell, hvor meningen er at hver gang Java finner en indeks hvor den inntastede verdien dukker opp, så blir dette lagt inn som nytt element i den nye tabellen. Dersom f.eks det inntastede tallet (la oss si 4), dukker opp to ganger, la oss si på posisjon 0 og 3 i den opprinnelige tabellen, så skal den nye tabellen da få lengde 2, og de to verdiene i tabellen er 0 og 3.

 

Foreløpig er min kode for metoden som følger:

 

public static int[] linsøk(int[] tall, int nøkkel) {

int[] indeksverdier = null;

int n = 0;

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

if (tall == nøkkel) {

indeksverdier[n] = i;

n++;}

}

 

return indeksverdier;

}

 

Jeg får imidlertid til stadighet problemer med den nye tabellen jeg oppretter (i dette tilfellet int[] indeksverdier). Jeg er nemlig nødt til å initialisere tabellen, ellers får jeg feilmelding om at tabellen ikke er initialisert. Dersom jeg skriver "null" slik som over, så får jeg imidlertid feilmeldingen java.lang.NullPointerException. Men hva skal jeg gjøre, når jeg ikke vet hvor lang tabellen til syvende og sist skal bli? Det er dette jeg ikke helt klarer å finne ut av.

 

All hjelp settes veldig stor pris på!

Lenke til kommentar
Videoannonse
Annonse

Men hva skal jeg gjøre, når jeg ikke vet hvor lang tabellen til syvende og sist skal bli?

 

java.util.List<Integer> indeksverdier = new java.util.ArrayList<Integer>();

 

Edit: Hvis det er en skoleoppgave så pleier de å like at du lager en metode for å utvide arrays når de er fulle. Utenom det er Collections som List å foretrekke.

Endret av Kiff
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...