Windows käsurida
Igale arvutile on töötamiseks paigaldatud operatsioonisüsteem (näiteks MS...
ArrayList
)Mõned peatükid tagasi õppsime massiive, kus ühes kogumis saab hoida palju samatüübilisi andmeid. Kuid massiiv on fikseeritud suurusega. Kui aga sa ei tea, kui suur on su andmete kogum, siis selle vastu aitab ArrayList
. Selle puhul on oluline teada, et tegemist on korrastatud andmekogumiga, mis tähendab, et elemendid on alati kindlas järjekorras. Teeme näite, kus loome loendi ja lisame sinna linna nimed. Lisamiseks kasutame add()
meetodit.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import java.util.ArrayList; public class ylesanne6 { public static void main(String[] args) { ArrayList<String> linnad = new ArrayList<String>(); linnad.add("Haapsalu"); linnad.add("Tallinn"); linnad.add("Pärnu"); System.out.println(linnad); } } //Väljund: [Haapsalu, Tallinn, Pärnu] |
Elemendid on sarnaselt massiiviga indekseeritud alates nullist ning kõik elemendid saab kätte for
või foreach
lausega.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import java.util.ArrayList; public class ylesanne6 { public static void main(String[] args) { ArrayList<String> linnad = new ArrayList<String>(); linnad.add("Haapsalu"); linnad.add("Tallinn"); linnad.add("Pärnu"); for (String linn : linnad) { System.out.println(linn); } } } //Väljund: /* Haapsalu Tallinn Pärnu */ |
linnad.remove("Haapsalu")
– eemaldamine nimetuse järgilinnad.remove(0)
– eemaldamine indeksi järgilinnad.clear()
– kustutab kogu loendi tühjakslinnad.size()
linnad.indexOf("Tallinn")
linnad.isEmpty()
linnad.contains("Haapsalu")
Kui oled teinud arvudega loendi ja soovid kustutada kindla väärtusega arvu, siis kasuta tüübiteisendust
1 2 3 4 5 6 7 8 | ArrayList<Integer> list = new ArrayList<Integer>(); list.add(5); list.add(6); list.add(7); list.add(1); System.out.println(list.remove((int) 1)); |
Praeguseks oskame kasutajalt infot vastu võtta, töödelda ja seejärel kuvada. Toome sisse uue võimaluse ja salvestame soovitud andmed tekstifaili. Tekstifaili loomiseks ja sinna kirjutamiseks on mitu võimalust. Meie kasutame java.io
paketi klasside BufferedWriter
ja FileWriter
abi. Kuna need klassid kuuluvad samasse paketti, siis saan need importida tärni abil.
Kui oleme nendest klassidest isendid loonud, siis saame veateate. Nimelt ootab Java, et me kasutaks erindit ning faili kirjutamine tuleb kirjutada try-catch sisse. Sellest räägime lähemalt järgmine peatükk, aga kui kasutad Eclipse IDE, siis teeb ta selle sinu eest ära.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import java.io.*; public class ylesanne6 { public static void main(String[] args) { String minuTekst = "Hello Java!"; File minuFail = new File("MinuTekstifail.txt"); try { BufferedWriter bw = new BufferedWriter(new FileWriter(minuFail)); bw.write(minuTekst); bw.close(); System.out.println("Fail loodud!"); } catch (IOException e) { e.printStackTrace(); } } } |
Faili kirjutamisel jälgi, et alati sulgeksid faili, mille lõid. Pärast koodi käivitamist luuakse tekstifail projektikausta.
Tekstifaili lugemiseks kasutame aga sama Scanner
klassi, mida kasutasime nö klaviatuuri lugemisel. Seega meetodid peaks olema samad.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | import java.io.*; import java.util.Scanner; public class ylesanne6 { public static void main(String[] args) { File minuFail = new File("data.csv"); try { Scanner in = new Scanner(minuFail); String contents = in.nextLine(); while(in.hasNextLine()){ contents = contents+"\n"+in.nextLine(); } System.out.println(contents); } catch (FileNotFoundException e) { e.printStackTrace(); } } } |