Gå til innhold

Sortere et Array og fjerne null


Anbefalte innlegg

Jeg har et array.

1 2 3 4 5

 

Jeg har en metode som sletter ene objektet i Arrayen.

 

Jeg har valgt å slette objektet slik:

 

arrayNavn[indexNummer] = null;

 

Da får jeg f.eks:

 

1 null 3 4 5.

 

Spørsmålet mitt er hvordan jeg får sortert og fjerna null, eller slik at han ikke skriver ut null?

- 1 3 4 5 null

- 1 3 4 5

 

Jeg har prøvd dette:

for (int i = 0; i < arrayNavn.length; i++){
if (arrayNavn == null){
while(i != arrayNavn.length-1)
arrayNavn = arrayNavn[i + 1];
i++;
}
}
Det funker ikke.
Forslag?
Lenke til kommentar
Videoannonse
Annonse

Når du oppretter arrayet, så er det av en bestemt type, f.eks. en klasse som String eller en egendefinert.

Siden du har oppretter arrayet som en type av "navnet på class", så må alle elementene i arrayet være enten et objekt/instans av den klassen, eller null.

Du kan ikke sette den plassen til å peke på String, som er av en annen klasse.

 

Enten må den stå som null, eller må du definere et slags "null-objekt" av den klassen du bruker, slik at du vet at det er null/ingen verdi.

 

 

Angående sorteringen, så kommer det an på hva du ønsker å gjøre med null.

Når du oppretter arrayet, så er det av en fast lengde som ikke kan endres under kjøring. Så selvom du setter plassen til null, så vil plassen alltid eksistere.

Så hvordan man gjør sorteringen vil være avhengig om du velger å ha null null der den er og bare ikke skriver den ut, eller om du ønsker å flytte den bakerst, og stoppe utskrivningen når du kommer til et null-element. Eventuelt kopiere elementene som ikke er null til et nytt array, og returnere det.

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