Advertisement
Guest User

Untitled

a guest
Jan 19th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.44 KB | None | 0 0
  1. package wi18.oose;
  2.  
  3. import java.util.Comparator;
  4. import java.util.function.Consumer;
  5. import java.util.function.Predicate;
  6. import java.util.Arrays;
  7.  
  8. public class AL<E> implements List<E> {
  9. protected E[] store = (E[]) new Object[5];
  10. protected int size = 0;
  11.  
  12. public AL(E... es) {
  13. //E... bedeutet es muss nichts gegeben sein oder alles was gegeben wird
  14. // wird als Liste übernommen, von dieser Liste werden dann alle Element mit der for Schleife
  15. // dem Array store eingefügt
  16. for (E e : es)
  17. add(e);
  18. }
  19.  
  20. private void mkNewStore() {
  21. E[] newStore = (E[]) new Object[size + 5];
  22. for (int i = 0; i < store.length; i++)
  23. newStore[i] = store[i];
  24. store = newStore;
  25. }
  26.  
  27. public void add(E e) {
  28. if (store.length <= size)
  29. mkNewStore();
  30. store[size++] = e;
  31. }
  32.  
  33. public int size() {
  34. return size;
  35. }
  36.  
  37. public E get(int i) {
  38. return store[i];
  39. }
  40.  
  41. @Override
  42. public void addAll(List<E> cs) {
  43. for (int i = 0; i < cs.size(); i++) {
  44. add(cs.get(i));
  45. }
  46. }
  47.  
  48. @Override
  49. public void remove(int i) {
  50. if (i<0){return;}
  51. if (i>store.length){return;}
  52. else{
  53. for (; i < (size-1) ; i++){
  54. store[i]=store[i++];
  55. }
  56. }
  57.  
  58. }
  59.  
  60. @Override
  61. public void insert(int i, E e) {
  62. //if (i==null){return;}
  63. if (i<0){return;}
  64. if (i>=size){
  65. add(e);
  66. }
  67. else {
  68. for (int s=size-1; s > i ; s--) {
  69. store[++s]=store[s];
  70. }
  71. store[i]=e;
  72. size++;
  73. }
  74. }
  75.  
  76. @Override
  77. public boolean contains(E e) {
  78. for (int i = 0; i < store.length; i++) {
  79. if (get(i).equals(e)){
  80. return true;
  81. }
  82.  
  83. }
  84. return false;
  85. }
  86.  
  87. @Override
  88. public boolean containsWith(Predicate<E> pred) {
  89. for (int i = 0; i < store.length; i++) {
  90. if (pred.test(get(i))) {
  91. return true;
  92. }
  93. }
  94. return false;
  95. }
  96.  
  97. @Override
  98. public void reverse() {
  99. E[] newStore = (E[]) new Object[size];
  100. for (int i = 0; i<size; i++) {
  101. newStore[i]=store[--size];
  102. }
  103. store = newStore;
  104.  
  105. }
  106.  
  107. @Override
  108. public void forEach(Consumer<? super E> consumer) {
  109. for(E e : store){
  110. consumer.accept(e);
  111. }
  112. }
  113.  
  114. @Override
  115. public boolean startsWith(List<E> that) {
  116. int x = that.size();
  117. if (x > size) {
  118. return false;
  119. }
  120. for (int i = 0; i < x; i++) {
  121. if (!(store[i] == that.get(i))) {
  122. return false;
  123. }
  124. }
  125. return true;
  126. }
  127.  
  128. @Override
  129. public boolean endsWith(List<E> that) {
  130. //store = 1,2,3,4,5 size = 5
  131. //that = 3,4,5 size = 3
  132. // output= true
  133. int z = 0;
  134. int x = size - that.size(); // x = 5-3 = 2 also index 2
  135. for (; x <size; x++) { // von index 2 überprüfe ob alle store[x++] == that[i] mit i=0; i++;
  136. if (!(store[x]==that.get(z++))){return false;}
  137.  
  138. }
  139. return true;
  140. }
  141.  
  142. @Override
  143. public List<E> sublist(int i, int l) {
  144. List<E> newList = new AL<E>();
  145. if (l>(size-i))
  146. l--;
  147. for (; i < l; i++) {
  148. newList.add(store[i]);
  149. }
  150. return newList;
  151. }
  152. public void swap(int i,int j) {
  153. E tmp=store[i];
  154. store[i]=store[j];
  155. store[j]=tmp;
  156. }
  157.  
  158. @Override
  159. public void sortBy(Comparator<? super E> cmp) {
  160. for (int i = 0; i < size; i++) {
  161. for (int j = 0; j < size; j++) {
  162. if((cmp.compare(store[j],store[j+1]))>0){
  163. swap(j,j+1);
  164. }
  165. }
  166. }
  167. }
  168. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement