Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- *
- * @author Gostkowski Jakub S12660
- *
- */
- package zad1;
- import java.util.*;
- // Plik Main.java może być dowolnie modyfikowany,
- // ale punkty uzyskuje się za właściwe dzialanie poszczególnych pokazanych tu metod klasy XList.
- // Jeżeli nie oprogramujemy wszystkich metod, to z klasy Main nalezy usunąć te fragmenty,
- // które powodują błędy w kompilacji - w przeciwnym razie nie uzyskamy punktów.
- public class Main {
- public static void main(String[] args) {
- // Pewne dodatkowe zestawy danych
- Integer[] ints = { 100, 200, 300 };
- Set<Integer> set = new HashSet<>(Arrays.asList(3, 4, 5));
- // Sposoby tworzenia
- XList<Integer> list1 = new XList<>(1, 3, 9, 11);
- XList<Integer> list2 = XList.of(5, 6, 9);
- XList<Integer> list3 = new XList(ints);
- XList<Integer> list4 = XList.of(ints);
- XList<Integer> list5 = new XList(set);
- XList<Integer> list6 = XList.of(set);
- System.out.println(list1);
- System.out.println(list2);
- System.out.println(list3);
- System.out.println(list4);
- System.out.println(list5);
- System.out.println(list6);
- // --- i pomocnicze metody do tworzenia z napisĂłw
- XList<String> slist1 = XList.charsOf("ala ma kota");
- XList<String> slist2 = XList.tokensOf("ala ma kota");
- XList<String> slist3 = XList.tokensOf("A-B-C", "-");
- System.out.println(slist1);
- System.out.println(slist2);
- System.out.println(slist3);
- // Metoda union - suma elementĂłw
- List<Integer> m1 = list1.union(list2); // oczywiście, można podstawiać na List
- System.out.println(m1);
- // można wykonywać wszystkie operacje z interfejsu List, np:
- m1.add(11);
- System.out.println(m1);
- XList<Integer> m2 = (XList<Integer>) m1;
- XList<Integer> m3 = m2.union(ints).union(XList.of(4, 4));
- System.out.println(m2); // m2 siÄ™ nie zmienia
- System.out.println(m3); // wynik jest w m3
- m3 = m3.union(set);
- System.out.println(m3);
- // Widzieliśmy metode union
- // Teraz metoda diff(dowolna kolekcja)
- System.out.println(m3.diff(set)); // wszystko z m3, co nie jest w set
- System.out.println(XList.of(set).diff(m3)); // co jest w set, czego nie ma w m3
- // Metoda unique -zwraca nowÄ… Xlist bez duplikatow
- XList<Integer> uniq = m3.unique(); // lista, nie Set
- System.out.println(uniq);
- // permutacje (kolejność nie jest istotna, ważne żeby efektywnie)
- Set<ArrayList<String>> perm1 = XList.charsOf("abc").permute();
- System.out.println(perm1);
- Set<ArrayList<Integer>> perm2 = XList.of(1,2,3).permute();
- System.out.println(perm2);
- // // kombinacje (kolejność jest istotna)
- // List<String> sa = Arrays.asList( "a", "b");
- // List<String> sb = Arrays.asList( "X", "Y", "Z" );
- // XList<String> sc = XList.charsOf( "12" );
- // XList toCombine = XList.of(sa, sb, sc); // czy można tu uniknąć użycia typu surowego?
- // System.out.println(toCombine);
- // XList<XList<String>> cres = toCombine.combine();
- // System.out.println(cres);
- //
- // // collect i join
- // XList<String> j1 = cres.collect( list -> list.join());
- // System.out.println(j1.join(" "));
- // XList<String> j2 =cres.collect( list -> list.join("-"));
- // System.out.println(j2.join(" "));
- //
- // // forEachWithIndex
- // XList<Integer> lmod = XList.of(1,2,8, 10, 11, 30, 3, 4);
- // lmod.forEachWithIndex( (e, i) -> lmod.set(i, e*2));
- // System.out.println(lmod);
- // lmod.forEachWithIndex( (e, i) -> { if (i % 2 == 0) lmod.remove(e); } );
- // System.out.println(lmod);
- // lmod.forEachWithIndex( (e, i) -> { if (i % 2 == 0) lmod.remove(i); } );
- // System.out.println(lmod); // Pytanie: dlaczego mamy taki efekt?
- }
- }
Add Comment
Please, Sign In to add comment