Leer Java-programmering: Lijsten, Threads & Co. gebruiken
In het laatste artikel in onze Java-serie leggen we uit hoe u threads, lijsten, uitzonderingen en bestanden in Java correct kunt verwerken.
Java: wat zijn uitzonderingen?
Als u nog niet met Java hebt gewerkt, kunt u hier eerst onze "Basics" lezen. Verschillende voorbeeldcodes zijn te vinden in de fotogalerij aan het einde van het artikel.
- Een uitzondering is een probleem dat optreedt terwijl het programma wordt uitgevoerd.
- Er is een speciale code om met zo'n commando om te gaan. Om dit te doen, schrijft u eerst "probeer {" en vervolgens de uit te voeren code. Schrijf vervolgens "} catch (Exception e) {" en vervolgens verschillende opdrachten die moeten worden uitgevoerd als de vorige bewerking niet mogelijk is. Vergeet niet om aan het einde een beugel toe te voegen.
- Een werpopdracht is ook erg praktisch. Een voorbeeld hiervan is de code »int div (int a, int b) gooit« ⮩ »ArithmeticException {« ⮩ »if (b == 0) {« ⮩ »gooi nieuwe ArithmeticException (" Division by 0! ");« ⮩ »} Anders {« ⮩ »retourneer a / b;« ⮩ »}« ⮩ »}«. De instructie throw in de methode definieert welk type uitzondering de methode kan krijgen. Het throw-trefwoord bepaalt wat er met deze uitzondering moet gebeuren.
- Praktisch: een enkel try-blok kan verschillende catch-blokken bevatten.
Gebruik threads in Java
Met threads kunt u verschillende opdrachten tegelijkertijd in Java uitvoeren. Er zijn twee verschillende manieren om een thread te maken.
- Enerzijds kan een bepaalde klasse erven van de "Thread" -klasse. Schrijf bijvoorbeeld eerst "class Loader breidt draad {" uit. Vervolgens moet u een methode definiëren met "public void run () {" die de functies van de thread beschrijft. In een andere klasse kunt u nu de opdracht "Loader obj = new Loader ();" gebruiken om de methode "obj.start ();" te gebruiken om de thread te starten.
- Als alternatief kunt u de interface "Runnable" in een klasse implementeren. U kunt dit doen met het commando "class Loader implementeert Runnable {". Definieer opnieuw een run-methode. Nu kunt u de thread in een andere klasse beginnen met de code "Thread t = new Thread (new Loader ());" ⮩ "t.start ();"
- Tip: U kunt de opdracht "Thread.sleep (1000);" gebruiken om de thread een seconde te laten rusten. Houd er echter rekening mee dat deze opdracht een InterruptedException genereert.
Maak lijsten in Java
Er zijn twee verschillende soorten lijsten in Java: de "ArrayList" en de "LinkedList".
- Doorgaans kunnen arrays in Java slechts een bepaald aantal objecten opslaan. Er is echter een functie genaamd "ArrayList" in de Java API. Schrijf eerst "import java.util.ArrayList;" om het vereiste pakket te importeren. Nu kunt u de opdracht ArrayList colours = new ArrayList (); gebruiken om een nieuwe lijst te maken. Optioneel kunt u de opdracht ArrayList colours = new ArrayList (10); gebruiken om vooraf een lijst te maken met het gegevenstype en de grootte.
- Nu kunt u iets aan de lijst toevoegen met de opdracht »colours.add (" ... ");«. Met »colours.remove (" ... ");« kan dit proces worden teruggedraaid. U kunt ook »colours.contains (...);« gebruiken om te informeren of de lijst een bepaald element bevat of de opdracht »colours.get (int x);« gebruiken om een waarde met een bepaalde index te krijgen. Ten slotte kunt u »colours.size ();« gebruiken om het aantal elementen in de lijst op te vragen en »colours.clear ();« gebruiken om alle elementen van de lijst te verwijderen.
- Als alternatief is er ook de "LinkedList", die u kunt importeren met de opdracht »import java.util.LinkedList;«. De commando's zijn hier hetzelfde; U moet echter elke keer "LinkedList" schrijven in plaats van "ArrayList". Een ArrayList is meer geschikt voor het opslaan van objecten die later toegankelijk zijn. U moet een LinkedList gebruiken als u gegevens wilt wijzigen.
Java: gebruik HashMap
In de bovenstaande lijsten heeft elk object een (geheel getal) index. De HashMap wordt gebruikt om gegevens op te slaan met een paar waarden bestaande uit "Sleutel" en "Object".
- U importeert de HashMap met de opdracht »import java.util.HashMap;«. Vergelijkbaar met de lijsten, kunt u nu een HashMap maken met het commando »HashMap points = new HashMap ();«.
- Vervolgens kunt u bijvoorbeeld de opdracht »points.put (" Amy ", 154);« toevoegen. De opdracht »System.out.println (" points.get ("Amy")); «voert nu de waarde 154 uit. Nogmaals, u kunt verwijderingsmethoden gebruiken om deze te verwijderen.
- Een HashMap kan geen objecten met twee identieke sleutels bevatten. Een object zou eenvoudigweg worden overschreven. De methoden "bevatKey" en "bevatValue" zijn erg praktisch en kunnen worden gebruikt om te controleren of er een object of een sleutel bestaat in de HashMap.
- Er zijn ook zogenaamde "hash-sets". Een set is een verzameling waarden, waarbij twee identieke waarden nooit kunnen bestaan. De opdracht java.util.HashSet; importeren wordt gebruikt om te importeren. U kunt bijvoorbeeld een nieuwe set maken met de opdracht »HashSet set = new HashSet ();«. Nu kunt u elementen toevoegen aan deze HashSet met het commando »set.add (" ... ");«. Het commando »System.out.println (set);« voert eindelijk alle commando's van de set uit.
- Gewoonlijk wordt de volgorde van de elementen binnen een hashset niet consistent gehandhaafd. Als u wilt, kunt u echter een "LinkedHashSet" gebruiken.
- Overigens: een hashtabel slaat informatie op via een mechanisme dat "hashing" wordt genoemd, waarbij elke waarde van een sleutel wordt gebruikt om een unieke waarde te bepalen die "hash-code" wordt genoemd. Eenvoudig gezegd betekent dit dat elk element van een hash-set is gekoppeld aan een hash-code.
Sorteer lijsten en gebruik iterators
Om nog efficiënter met lijsten te werken, kunt u ze sorteren en iterators gebruiken.
- De Java API bevat ook de collectiesklasse. Een van de meest praktische methoden hier is de sorteermethode. Alle methoden van de collectiesklasse zijn statische methoden, dus ze hoeven niet opnieuw te worden aangegeven. Als u bijvoorbeeld een ArrayList met de naam "dier" hebt gemaakt, kunt u de waarden ervan ordenen met de opdracht Collections.sort (dier); U kunt de klasse Collections importeren met de opdracht »import java.util.Collections;«.
- Een iterator is een object dat door een verzameling circuleert en waarden ontvangt en kan verwijderen. U importeert het vereiste pakket met de opdracht »import java.util.iterator;«. In dit geval hebben we al een LinkedList gemaakt met de naam "dieren". U kunt de iterator nu definiëren met het commando »Iterator it = animals.iterator ();«. Als u nu de opdracht »System.out.println (it.next ());« uitvoert, wordt het eerste element van de LinkedList uitgevoerd. Als u het commando opnieuw uitvoert, gaat de iterator een stap verder en voert het tweede element uit. Ook hier kunt u elementen verwijderen met een verwijdermethode. Er is ook de methode hasNext, waarmee u kunt controleren of er een ander element bestaat.
Java: bestanden maken en gebruiken
U kunt eenvoudig uw eigen bestanden in Java maken en gebruiken.
- Hiertoe moet u eerst het vereiste pakket importeren met de opdracht "import java.io.File;". Definieer vervolgens een bestand met een geschikt pad met de opdracht »Bestandbestand = nieuw bestand (" C: \\ data \\ input-file.txt ");«. Met »if (x.exists ()) {« kunt u controleer of het bestand bestaat. U krijgt de naam van het bestand met "x.getName ()".
- In de volgende stap kunt u een nieuwe scanner maken met de opdracht »Scanner sc = new Scanner (x);«. Nogmaals, u kunt opdrachten zoals "sc.next ()" of "sc.hasNext ()" gebruiken om de gegevens uit een bestand te lezen. Het werkt heel goed in een tijdje. Vergeet niet om het bestand aan het einde te sluiten met "sc.close ();".
- Om naar bestanden te kunnen schrijven, moet u eerst de opdracht "import java.util.Formatter;" aan uw code toevoegen. De opdracht »Formatter f = new Formatter (" C: \\ CHIP \\ test.txt ");« maakt nu een bestand met de naam "test.txt" op het opgegeven pad.
- Om naar het bestand te kunnen schrijven, kunt u de opdracht »f.format gebruiken ("% s% s% s, "1", "Max", "Mustermann \ r \ n"); «. % s "voor een string die wordt vervangen door de eerste parameter, de tweede"% s "door de tweede parameter, enzovoort. Het programma springt naar de volgende regel door op" \ r \ n "te drukken.
Hier eindigt onze tutorialserie over de programmeertaal Java. In de volgende praktische tip geven we je een inleiding tot programmeren met Python.