07. maj 2014 - 15:17Der er
3 kommentarer og 1 løsning
Sletter ArrayList ved hver indtastning
Hej
Vi henter en list fra en textfil ind i en arrayliste, og den indeholder et navn og et efternavn.
Vi vil gerne have at når man skriver navnet i consolen, skal den finde den person og man så kan indtaste et resultat som den skriver i arraylisten efter efternavnet, det gør den også.
Men når vi så køre igen og indtaster et andet navn og efternavn så sletter den det tidligere resultat vi gerne skulle have i arraylisten som vi allerede har indtastet sidste gang. Og starter på ny igen, hvad er det lige at jeg gør forkert?
Det er koden jeg har indtil videre:
import java.util.*; import java.io.*; public class result {
getList list = new getList(); Scanner input; Scanner result; PrintStream output;
public result() throws Exception {
ArrayList<String> resultList = new ArrayList<String>(list.showListToArray());
output = new PrintStream(new File("compititionsResult.txt")); input = new Scanner(System.in);
result = new Scanner(System.in);
String name = input.next(); String lastName = input.next();
for(int i =0; i < 1; i++) {
if(resultList.contains(name) && resultList.contains(lastName)) { System.out.print(resultList.get(resultList.indexOf(name)) + " " + resultList.get(resultList.indexOf(name)+1) ); System.out.print(name + lastName + "Enter his result ");
String bestResult = result.next();
int position = resultList.indexOf(lastName)+1;
resultList.add(position, bestResult);
}
} System.out.print(resultList);
}
}
Håber nogle vlle hjælpe, kan ikke helt gennemskue hvorfor den gør det.
Undskyld det sene svar, men skulle lige hjem fra arbejde.
jeg har denne arraylist resultList som henter inholdet fra en tesktfil og ligger over i en arraylist. Denne arraylist indeholder nu fornavne og efternavne.
Når jeg søger i arraylisten efter det navn hvor jeg vil tilføje en tid, sletter den det jeg har indskrevet fra sidst hvergang jeg køre dette array.
Så hvis jeg åbner programmer og siger at jeg vil finde navnet Jim, så finder den navnet jim og beder mig om at indtaste en tid for denne person, f.eks. 100 det indsætter den også korrekt efter den person. Men det skulle gerne blive i arraylisten næste gang jeg køre programmet uden at slette det igen.
For hvis jeg åbner programmet igen og køre det, og finder et andet navn f.eks. Lene og programmet beder mg om at indtaste en tid, og jeg skriver 80 denne gang og den udskriver arraylisten, så har den slettet den indtastning jeg lavede tidligere ved Jim og udskriver kun den ved Lene.
Så den tømmer mit arraylist hver gang jeg køre programmet, den skulle bare tilføje en tid hvergang programmet køre.
Jeg kan ikke lige gennemskue hvor jeg ikke kan få mit program til at gøre dette?
Hukommelsen er blevet renset, Java har en automatisk Mark And Sweep Garbage Collector, så dine objekter og/eller referencer slettes når de ikke længere er i brug.
Brug evt. Javas bibliotek - java.io.File, java.io.FileWriter, java.io.FileReader, java.io.IOException til at gemme/læse din data.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.