Advertisement
alicemiriel

Untitled

Mar 28th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.22 KB | None | 0 0
  1. package zadanie14ArrayList;
  2.  
  3.  
  4. import java.io.File;
  5. import java.util.Scanner;
  6.  
  7.  
  8. class MyArrayList {
  9.     private static final int CAPACITY = 10000;
  10.     private Integer[] numbers = new Integer[CAPACITY];
  11.     private int index = 0;
  12.  
  13.     public Integer get(Integer i) {
  14.         return numbers[i];
  15.     }
  16.  
  17.     public void add(Integer number) {
  18.         if (index >= numbers.length) {
  19.             copy(2 * numbers.length);
  20.         }
  21.         numbers[index++] = number;
  22.     }
  23.  
  24.     public void remove(Integer x) {
  25.         for (int i = 0; i < size() - 1; i++) {
  26.             if (x.equals(get(i))) {
  27.                 numbers[i] = null;
  28.             }
  29.         }
  30.  
  31.         copy(size());
  32.     }
  33.  
  34.     public void remove(MyArrayList otherList) {
  35.         for (int i = 0; i < otherList.size() - 1; i++) {
  36.             Integer actualElement = otherList.get(i);
  37.             remove(actualElement);
  38.         }
  39.         copy(size());
  40.     }
  41.  
  42.     public MyArrayList diff(MyArrayList secondList, MyArrayList firstList) {
  43.         MyArrayList different = new MyArrayList();
  44.         for (int i = 0; i < firstList.size() - 1; i++) {
  45.             for (int j = 0; j < secondList.size() - 1; j++) {
  46.                 if (!get(i).equals(secondList.get(j))) {
  47.                     different.get(i);
  48.                 }
  49.  
  50.             }
  51.  
  52.         }
  53.         return different;
  54.     }
  55.  
  56.  
  57.     public int indexOf(Object o) {
  58.         if (o == null) {
  59.             for (int i = 0; i < size(); i++)
  60.                 if (numbers[i] == null)
  61.                     return i;
  62.         } else {
  63.             for (int i = 0; i < size(); i++)
  64.                 if (o.equals(numbers[i]))
  65.                     return i;
  66.         }
  67.         return -1;
  68.     }
  69.  
  70.     public boolean contains(Object o) {
  71.         return indexOf(o) >= 0;
  72.     }
  73.  
  74.     private void removeRecur(Integer x, int i) {
  75.         if (i < 0) {
  76.             return;
  77.         }
  78.         if (x.equals(get(i))) {
  79.             numbers[i] = null;
  80.         }
  81.         removeRecur(x, i - 1);
  82.     }
  83.  
  84.     public void removeRecurWithCopy(Integer x) {
  85.         removeRecur(x, index);
  86.         copy(size());
  87.     }
  88.  
  89.     private void copy(int newSize) {
  90.         Integer[] temp = new Integer[newSize];
  91.         int tabSize = size();
  92.         int tempIndex = 0;
  93.  
  94.         for (int i = 0; i < tabSize - 1; i++) {
  95.             if (get(i) != null) {
  96.                 temp[tempIndex++] = get(i);
  97.             }
  98.         }
  99.         index = tempIndex;
  100.         numbers = temp;
  101.     }
  102.  
  103.     public int size() {
  104.         return index + 1;
  105.     }
  106. }
  107.  
  108. public class Main {
  109.  
  110.     public static void main(String[] args) {
  111.         MyArrayList words = new MyArrayList();
  112.         words.add(4);
  113.         words.add(3);
  114.         words.add(5);
  115.         words.add(10);
  116.         words.add(4);
  117.         words.add(7);
  118.         words.add(8);
  119.         words.add(4);
  120.  
  121.         System.out.println("init: ");
  122.         for (int i = 0; i < words.size() - 1; i++) {
  123.             System.out.print(words.get(i) + ", ");
  124.         }
  125.  
  126.         words.removeRecurWithCopy(4);
  127.  
  128.         System.out.println();
  129.         System.out.println("After remove `4`: ");
  130.         for (int i = 0; i < words.size() - 1; i++) {
  131.             System.out.print(words.get(i) + ", ");
  132.         }
  133.     }
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement