Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ui;
- import java.util.*;
- import java.util.stream.Collectors;
- public class OefLinkedList_opgave<T> {
- public OefLinkedList_opgave() {
- //Creëer een Integer-array "getallen" en initialiseer met 4, 3, 9 en 7
- //-------------------------------------------------------------------
- Integer getallen[] = {4,3,9,7};
- //Creëer een 'arrayList' en vul op met de array "getallen" (1 instructie)
- //-----------------------------------------------------------------------------------
- List<Integer> arrayList = new ArrayList<>(Arrays.asList(getallen));
- //Creëer de linkedList "lijstInteger" en vul op met de inhoud van de arrayList ( 1 instructie )
- //--------------------------------------------------------------------------------
- //NIET GOED
- // LinkedList<Integer> lijstInteger = new LinkedList<>(arrayList);
- //GOED
- List<Integer> lijstInteger = new LinkedList<>(arrayList);
- //Voeg vooraan in "lijstInteger" getal 2 toe
- //------------------------------------------------
- //NIET GOED
- // lijstInteger.addFirst(2);
- //GOED
- lijstInteger.add(0, 2);
- //Voeg achteraan in "lijstInteger" getal 12 toe
- //---------------------------------------------------
- //NIET GOED
- // lijstInteger.addLast(12);
- //GOED
- lijstInteger.add(12);
- weergevenLijst("oplossing: 2 4 3 9 7 12", lijstInteger);
- //Verwijder het eerste element van "lijstInteger" en toon op het scherm d.m.v. printf
- //----------------------------------------------------------------
- //NIET GOED
- // Integer hulp = lijstInteger.removeFirst();
- //GOED
- int eersteElement = lijstInteger.remove(0);
- System.out.printf("%s%n%s", "oplossing: 2", " ");
- metEenVerhogen(lijstInteger);
- weergevenLijst("oplossing: 5 4 10 8 13", lijstInteger);
- lijstInteger = metEenVerhogen_java8(lijstInteger);
- weergevenLijst("oplossing: 6 5 11 9 14", lijstInteger);
- elementenMetOnevenIndexVerwijderen(lijstInteger);
- weergevenLijst("oplossing: 6 11 14", lijstInteger);
- elementenToevoegenNaOnevenGetallen(lijstInteger);
- weergevenLijst("oplossing: 6 11 13 14", lijstInteger);
- String woorden[] = {"aaa", "bbb", "ccc", "ddd", "eee", "fff"};
- //Creëer de LinkedList "lijstString" en vul op met de array "woorden" (1 instructie)
- //-----------------------------------------------------------------------
- List<String> lijstString = new LinkedList<>(Arrays.asList(woorden));
- elementenMetOnevenIndexVerwijderen(lijstString);
- weergevenLijst("oplossing: aaa ccc eee", lijstString);
- weergevenLijstOmgekeerdeVolgorde(
- "oplossing: eee ccc aaa", lijstString);
- }
- public void metEenVerhogen(List<Integer> lijst) //------------
- {
- //Alle elementen van de lijst wijzigen:
- //alle elementen worden met één verhoogd
- //JAVA 7: IMPLICIET GAAT NIET (IMMUTABLE)
- //EXPLICIET met ListIterator
- // ListIterator<Integer> it = lijst.listIterator();
- // while(it.hasNext()) {
- // int elem = it.next();
- // it.set(elem + 1);
- // }
- //EIGEN OPLOSSING = JAVA 8 BEST
- lijst.replaceAll(elem -> elem+1);
- //LES OPLOSSING
- }
- public List<Integer> metEenVerhogen_java8(List<Integer> lijst)
- {
- //De elementen van lijst worden met één verhoogd en worden
- //als nieuwe List<Integer> teruggegeven.
- //JAVA 8:
- // lijst.remove(2);//WIJZIG ook bij lijst van aanroep == zo ook met replaceAll
- //EIGEN OPLOSSING
- return lijst.stream()
- .map(elem->elem+1)
- .collect(Collectors.toList());
- //LES OPLOSSING
- }
- //generieke methode:
- public <T> void elementenMetOnevenIndexVerwijderen(List<T> lijst) //--- -------------
- {
- //Alle elementen, met oneven index, verwijderen (enkel met een iterator werken)
- //-----------------------------------------------------------------------------
- ListIterator<T> it = lijst.listIterator();
- while(it.hasNext()) {
- it.next();
- if(it.hasNext()) {
- it.next();
- it.remove();
- }
- }
- }
- public void elementenToevoegenNaOnevenGetallen(List<Integer> lijst) //-----------
- //Na ieder oneven getal wordt hetzelfde getal+2 toegevoegd in de Lijst
- //vb. 5 10 13 wordt 5 7 10 13 15
- //---------------------------------------------------
- {
- ListIterator<Integer> it = lijst.listIterator();
- while(it.hasNext()) {
- int elem = it.next();
- if(elem%2!=0) {
- it.add(elem+2);
- }
- }
- }
- //generieke methode:
- public <T> void weergevenLijst(String oplossing, Collection<T> lijst) //--- -------------
- // Alle elementen van de Collection<Integer> weergeven
- //---------------------------------------------------
- {
- System.out.printf("%s%n%s", oplossing, " ");
- //TODO
- lijst.forEach(elem -> System.out.printf("%s ", elem));
- System.out.println();
- }
- //generieke methode:
- public <T> void weergevenLijstOmgekeerdeVolgorde(
- String oplossing, List<T> lijst) {
- // Alle elementen van de List<Integer> in omgekeerde volgorde weergeven
- //--------------------------------------------------------------------------------------
- System.out.printf("%s%n%s", oplossing, " ");
- //TODO: JAVA 7:
- // List<T> hulp = new ArrayList<T>(lijst);
- // Collections.reverse(hulp);
- // hulp.forEach(elem->System.out.printf("%s ",elem));
- // Collections.reverse(lijst); NIET GOED ORIGINELE LIJST WORDT OMGEDRAAID
- // lijst.forEach(elem->System.out.printf("%s ", elem));
- // NOOIT MET INDEX ALS JE ER HELEMAAL DOOR MOET LOPEN altijd met iterator
- ListIterator<T> it = lijst.listIterator(lijst.size());
- while(it.hasPrevious()) {
- System.out.printf("%s ",it.previous());
- }
- System.out.println();
- System.out.println(
- "java 8 lijst omgekeerde volgorde: ");
- System.out.printf("%s%n%s", oplossing, " ");
- //TODO: JAVA8:
- new LinkedList<T>(lijst)
- .descendingIterator()
- .forEachRemaining(elem->System.out.printf("%s ", elem));
- System.out.println();
- }
- public static void main(String args[]) {
- new OefLinkedList_opgave();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement