Advertisement
Guest User

UTP1

a guest
Mar 17th, 2017
1,085
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.82 KB | None | 0 0
  1. ///////////// LIST CREATOR//////////////////
  2. /**
  3.  *
  4.  *  @author Ficek Paweł S14040
  5.  *
  6.  */
  7.  
  8. package zad1;
  9.  
  10. import java.util.*;
  11.  
  12. public class ListCreator<T> { // Uwaga: klasa musi być sparametrtyzowana
  13.  
  14.     private List<T> list;
  15.  
  16.     public ListCreator(final List<T> list) {
  17.         this.list = list;
  18.     }
  19.  
  20.     public static <T> ListCreator<T> collectFrom(List<T> list){
  21.         return new ListCreator<>(list);
  22.     }
  23.  
  24.     public ListCreator<T> when(Selector<T> sel){
  25.         List<T> resultList = new ArrayList<>();
  26.         for (final T element : this.list) {
  27.             if(sel.select(element)){
  28.                 resultList.add(element);
  29.             }
  30.         }
  31.         this.list = resultList;
  32.         return this;
  33.     }
  34.  
  35.     public <S> List<S> mapEvery(Mapper<T,S> map){
  36.         final List<S> resultList = new ArrayList<>();
  37.         for (final T element : this.list) {
  38.             resultList.add((S) map.map(element));
  39.         }
  40.        
  41.         return resultList;
  42.     }
  43. }  
  44.  
  45. //////////////////////MAIN//////////////////////////
  46.  
  47. /**
  48.  *
  49.  *  @author Ficek Paweł S14040
  50.  *
  51.  */
  52.  
  53. package zad1;
  54.  
  55.  
  56.  
  57. import java.util.*;
  58.  
  59. public class Main {
  60.   public Main() {
  61.     List<Integer> src1 = Arrays.asList(1, 7, 9, 11, 12);
  62.     System.out.println(test1(src1));
  63.  
  64.     List<String> src2 = Arrays.asList("a", "zzzz", "vvvvvvv" );
  65.     System.out.println(test2(src2));
  66.   }
  67.  
  68.   public List<Integer> test1(List<Integer> src) {
  69.     Selector<Integer> sel = n -> n < 10;/*<-- definicja selektora; bez lambda-wyrażeń; nazwa zmiennej sel */
  70.     Mapper<Integer,Integer>   map = n -> n+10;/*<-- definicja mappera; bez lambda-wyrażeń; nazwa zmiennej map */
  71.     return  ListCreator. /*<-- zwrot wyniku
  72.       uzyskanego przez wywołanie statycznej metody klasy ListCreator:
  73.      */  collectFrom(src).when(sel).mapEvery(map);
  74.   }
  75.  
  76.   public List<Integer> test2(List<String> src) {
  77.     Selector<String>   sel = n -> n.length() > 3;/*<-- definicja selektora; bez lambda-wyrażeń; nazwa zmiennej sel */
  78.     Mapper<String,Integer>  map = n -> n.length()+10 ;/*<-- definicja mappera; bez lambda-wyrażeń; nazwa zmiennej map */
  79.     return  ListCreator. /*<-- zwrot wyniku
  80.       uzyskanego przez wywołanie statycznej metody klasy ListCreator:
  81.      */collectFrom(src).when(sel).mapEvery(map);
  82.   }
  83.  
  84.   public static void main(String[] args) {
  85.     new Main();
  86.   }
  87. }
  88. ///////////////////////// SELECTOR///////////////
  89. /**
  90.  *
  91.  *  @author Ficek Paweł S14040
  92.  *
  93.  */
  94.  
  95. package zad1;
  96.  
  97.  
  98. public interface Selector<T> { // Uwaga: interfejs musi być sparametrtyzowany
  99.   boolean select(T t);
  100. }  
  101.  
  102. /////////////////////////MAPPER////////////////////////////////
  103. /**
  104.  *
  105.  *  @author Ficek Paweł S14040
  106.  *
  107.  */
  108.  
  109. package zad1;
  110.  
  111.  
  112. public interface Mapper<T,S> { // Uwaga: interfejs musi być sparametrtyzowany
  113.     S map(T t);
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement