cool_water Skrevet 8. november 2010 Del Skrevet 8. november 2010 Hei! Jeg holder på å jobbe med en oppgave som involverer tabell/array, oppgaven går utpå at man skal lage en dvdsamling, hvor jeg på slutten skal kunne søke opp og slette en spesifikk dvd som er registrert. Sliter litt med den slettedelen, har lest mye på nettet, men ikke blitt noe klokere, noen som har tips til hvordan jeg burde starte? Lenke til kommentar
DeadManWalking Skrevet 8. november 2010 Del Skrevet 8. november 2010 Dette er helt avhengig av hvordan listen din er implementert? (Bruker du en heeelt vanlig array, eller bruker du en ferdig klasse?) Lenke til kommentar
cool_water Skrevet 8. november 2010 Forfatter Del Skrevet 8. november 2010 Helt vanlig array. Har fått det for meg at det kan være lurt å bruke ArrayList, men har aldri vært borti det før.. Lenke til kommentar
Cemi Skrevet 8. november 2010 Del Skrevet 8. november 2010 for (int i mindre enn array størrelse) if (listen equals(søkestreng)) fjern i fra listen end if end for Ville tro du bare kan gjøre slik? Lenke til kommentar
Psy Skrevet 8. november 2010 Del Skrevet 8. november 2010 Her må du nok tenke over hvordan datastruktur du har og hva du egentlig vil skal skje med den når du sletter noe. Om datastrukturen er ArrayList har den en remove() metode som kan brukes. Om datastrukturen er en array så vil du vel at sletting skal fjerne elementet fra listen. Det er flere måter du kan gjøre dette på. Det ene er å tillate null elementer og bare sette elementet du vil fjerne til null (og ta høyde for at elementer kan være null når du gjør andre ting med listen). En annet er å fjerne elementet helt fra listen. Vanligvis vilø det si at du lager ett nytt array hvor lengden er en kortere og deretter kopierer alle elementene fra den ene arrayen til den andre unntatt elementet du vil slette. Lenke til kommentar
Cemi Skrevet 9. november 2010 Del Skrevet 9. november 2010 Litt ekstra tid midt på natten, mulig dette ikke er best mulige måte, men er noe slikt jeg tenker. Dersom du skal bruke en helt vanlig Array. int sokeInt = 100; // Det du vil søke etter, da i ditt tilfelle hente noe input. for(int i = 0; i<10; i++){ // Bytte ut 10 med din array størrelse. if (anArray[i]==sokeInt){ int t = i; while (t<9){ // Flytte alt et hakk bakover. Siste beholder verdien. anArray[t]=anArray[t+1]; t++; } } } Det er derimot en del lettere å bruke ArrayList, da du ikke må forhåndsbestemme størrelse, og du har .remove(int i) funksjonen. Hele koden jeg brukte for å teste at det faktisk fungerte, bare om sammenhengen skulle være interessant. public class Testest { public static void main(String[] args) { int[] anArray; // declares an array of integers anArray = new int[10]; // allocates memory for 10 integers anArray[0] = 100; // initialize first element anArray[1] = 200; // initialize second element anArray[2] = 300; // etc. anArray[3] = 400; anArray[4] = 500; anArray[5] = 600; anArray[6] = 700; anArray[7] = 800; anArray[8] = 900; anArray[9] = 1000; System.out.println("Element at index 0: " + anArray[0]); System.out.println("Element at index 1: " + anArray[1]); System.out.println("Element at index 2: " + anArray[2]); System.out.println("Element at index 3: " + anArray[3]); System.out.println("Element at index 4: " + anArray[4]); System.out.println("Element at index 5: " + anArray[5]); System.out.println("Element at index 6: " + anArray[6]); System.out.println("Element at index 7: " + anArray[7]); System.out.println("Element at index 8: " + anArray[8]); System.out.println("Element at index 9: " + anArray[9]); int sokeInt = 100; for(int i = 0; i<10; i++){ if (anArray[i]==sokeInt){ int t = i; while (t<9){ anArray[t]=anArray[t+1]; t++; } } } System.out.println("----------------------------------"); System.out.println("Element at index 0: " + anArray[0]); System.out.println("Element at index 1: " + anArray[1]); System.out.println("Element at index 2: " + anArray[2]); System.out.println("Element at index 3: " + anArray[3]); System.out.println("Element at index 4: " + anArray[4]); System.out.println("Element at index 5: " + anArray[5]); System.out.println("Element at index 6: " + anArray[6]); System.out.println("Element at index 7: " + anArray[7]); System.out.println("Element at index 8: " + anArray[8]); System.out.println("Element at index 9: " + anArray[9]); } } Lenke til kommentar
quantum Skrevet 10. november 2010 Del Skrevet 10. november 2010 Litt ekstra tid midt på natten, mulig dette ikke er best mulige måte, men er noe slikt jeg tenker. Dersom du skal bruke en helt vanlig Array. Hint: System.arraycopy ... Det er jo aldri dumt å bruke smarte klasser fra Collections, kanskje bortsett fra akkurat når man holder på med oppgaver hvor pointet er å lære seg å kode mot vanlige arrays ... Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå