Guest User

Untitled

a guest
Nov 8th, 2015
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.81 KB | None | 0 0
  1. /**
  2. *
  3. * @author Gostkowski Jakub S12660
  4. *
  5. */
  6.  
  7. package zad1;
  8.  
  9.  
  10. import java.util.*;
  11.  
  12. // Plik Main.java może być dowolnie modyfikowany,
  13. // ale punkty uzyskuje się za właściwe dzialanie poszczególnych pokazanych tu metod klasy XList.
  14.  
  15. // Jeżeli nie oprogramujemy wszystkich metod, to z klasy Main nalezy usunąć te fragmenty,
  16. // które powodują błędy w kompilacji - w przeciwnym razie nie uzyskamy punktów.
  17.  
  18. public class Main {
  19. public static void main(String[] args) {
  20. // Pewne dodatkowe zestawy danych
  21. Integer[] ints = { 100, 200, 300 };
  22. Set<Integer> set = new HashSet<>(Arrays.asList(3, 4, 5));
  23.  
  24. // Sposoby tworzenia
  25. XList<Integer> list1 = new XList<>(1, 3, 9, 11);
  26. XList<Integer> list2 = XList.of(5, 6, 9);
  27. XList<Integer> list3 = new XList(ints);
  28. XList<Integer> list4 = XList.of(ints);
  29. XList<Integer> list5 = new XList(set);
  30. XList<Integer> list6 = XList.of(set);
  31.  
  32. System.out.println(list1);
  33. System.out.println(list2);
  34. System.out.println(list3);
  35. System.out.println(list4);
  36. System.out.println(list5);
  37. System.out.println(list6);
  38.  
  39. // --- i pomocnicze metody do tworzenia z napisĂłw
  40. XList<String> slist1 = XList.charsOf("ala ma kota");
  41. XList<String> slist2 = XList.tokensOf("ala ma kota");
  42. XList<String> slist3 = XList.tokensOf("A-B-C", "-");
  43.  
  44. System.out.println(slist1);
  45. System.out.println(slist2);
  46. System.out.println(slist3);
  47.  
  48. // Metoda union - suma elementĂłw
  49. List<Integer> m1 = list1.union(list2); // oczywiście, można podstawiać na List
  50. System.out.println(m1);
  51. // można wykonywać wszystkie operacje z interfejsu List, np:
  52. m1.add(11);
  53. System.out.println(m1);
  54. XList<Integer> m2 = (XList<Integer>) m1;
  55. XList<Integer> m3 = m2.union(ints).union(XList.of(4, 4));
  56. System.out.println(m2); // m2 siÄ™ nie zmienia
  57. System.out.println(m3); // wynik jest w m3
  58. m3 = m3.union(set);
  59. System.out.println(m3);
  60.  
  61. // Widzieliśmy metode union
  62. // Teraz metoda diff(dowolna kolekcja)
  63. System.out.println(m3.diff(set)); // wszystko z m3, co nie jest w set
  64. System.out.println(XList.of(set).diff(m3)); // co jest w set, czego nie ma w m3
  65.  
  66. // Metoda unique -zwraca nowÄ… Xlist bez duplikatow
  67. XList<Integer> uniq = m3.unique(); // lista, nie Set
  68. System.out.println(uniq);
  69.  
  70. // permutacje (kolejność nie jest istotna, ważne żeby efektywnie)
  71. Set<ArrayList<String>> perm1 = XList.charsOf("abc").permute();
  72. System.out.println(perm1);
  73. Set<ArrayList<Integer>> perm2 = XList.of(1,2,3).permute();
  74. System.out.println(perm2);
  75.  
  76. // // kombinacje (kolejność jest istotna)
  77. // List<String> sa = Arrays.asList( "a", "b");
  78. // List<String> sb = Arrays.asList( "X", "Y", "Z" );
  79. // XList<String> sc = XList.charsOf( "12" );
  80. // XList toCombine = XList.of(sa, sb, sc); // czy można tu uniknąć użycia typu surowego?
  81. // System.out.println(toCombine);
  82. // XList<XList<String>> cres = toCombine.combine();
  83. // System.out.println(cres);
  84. //
  85. // // collect i join
  86. // XList<String> j1 = cres.collect( list -> list.join());
  87. // System.out.println(j1.join(" "));
  88. // XList<String> j2 =cres.collect( list -> list.join("-"));
  89. // System.out.println(j2.join(" "));
  90. //
  91. // // forEachWithIndex
  92. // XList<Integer> lmod = XList.of(1,2,8, 10, 11, 30, 3, 4);
  93. // lmod.forEachWithIndex( (e, i) -> lmod.set(i, e*2));
  94. // System.out.println(lmod);
  95. // lmod.forEachWithIndex( (e, i) -> { if (i % 2 == 0) lmod.remove(e); } );
  96. // System.out.println(lmod);
  97. // lmod.forEachWithIndex( (e, i) -> { if (i % 2 == 0) lmod.remove(i); } );
  98. // System.out.println(lmod); // Pytanie: dlaczego mamy taki efekt?
  99.  
  100. }
  101. }
Add Comment
Please, Sign In to add comment