Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package zadanie14ArrayList;
- import java.io.File;
- import java.util.Scanner;
- class MyArrayList {
- private static final int CAPACITY = 10000;
- private Integer[] numbers = new Integer[CAPACITY];
- private int index = 0;
- public Integer get(Integer i) {
- return numbers[i];
- }
- public void add(Integer number) {
- if (index >= numbers.length) {
- copy(2 * numbers.length);
- }
- numbers[index++] = number;
- }
- public void remove(Integer x) {
- for (int i = 0; i < size() - 1; i++) {
- if (x.equals(get(i))) {
- numbers[i] = null;
- }
- }
- copy(size());
- }
- public void remove(MyArrayList otherList) {
- for (int i = 0; i < otherList.size() - 1; i++) {
- Integer actualElement = otherList.get(i);
- remove(actualElement);
- }
- copy(size());
- }
- public MyArrayList diff(MyArrayList secondList, MyArrayList firstList) {
- MyArrayList different = new MyArrayList();
- for (int i = 0; i < firstList.size() - 1; i++) {
- for (int j = 0; j < secondList.size() - 1; j++) {
- if (!get(i).equals(secondList.get(j))) {
- different.get(i);
- }
- }
- }
- return different;
- }
- public int indexOf(Object o) {
- if (o == null) {
- for (int i = 0; i < size(); i++)
- if (numbers[i] == null)
- return i;
- } else {
- for (int i = 0; i < size(); i++)
- if (o.equals(numbers[i]))
- return i;
- }
- return -1;
- }
- public boolean contains(Object o) {
- return indexOf(o) >= 0;
- }
- private void removeRecur(Integer x, int i) {
- if (i < 0) {
- return;
- }
- if (x.equals(get(i))) {
- numbers[i] = null;
- }
- removeRecur(x, i - 1);
- }
- public void removeRecurWithCopy(Integer x) {
- removeRecur(x, index);
- copy(size());
- }
- private void copy(int newSize) {
- Integer[] temp = new Integer[newSize];
- int tabSize = size();
- int tempIndex = 0;
- for (int i = 0; i < tabSize - 1; i++) {
- if (get(i) != null) {
- temp[tempIndex++] = get(i);
- }
- }
- index = tempIndex;
- numbers = temp;
- }
- public int size() {
- return index + 1;
- }
- }
- public class Main {
- public static void main(String[] args) {
- MyArrayList words = new MyArrayList();
- words.add(4);
- words.add(3);
- words.add(5);
- words.add(10);
- words.add(4);
- words.add(7);
- words.add(8);
- words.add(4);
- System.out.println("init: ");
- for (int i = 0; i < words.size() - 1; i++) {
- System.out.print(words.get(i) + ", ");
- }
- words.removeRecurWithCopy(4);
- System.out.println();
- System.out.println("After remove `4`: ");
- for (int i = 0; i < words.size() - 1; i++) {
- System.out.print(words.get(i) + ", ");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement