суботу, 2 березня 2013 р.

Java. Робота з масивами.

Дано масив. Необхідно створити  новий масив, що більший від попереднього на 75%. Далі - метод, що видаляє з масиву елемент з певним індексом. Перезаписати масив. Використати виключення IllegalArgumentException та IndexOfBoundsException Зробити перевірку.

import java.util.List;
import java.util.ArrayList;

public class AL {
int size = 0;
Object[] arr;

AL(int capacity) {
if (capacity <= 0)

throw new IllegalArgumentException();

arr = new Object[capacity];

}

void add(Object obj) {
arr[size] = obj;
size++;

if (size == arr.length) {
Object[] arr2;
arr2 = new Object[(int) ((double) arr.length * 2)];
for (int i = 0; i < arr.length; i++)
arr2[i] = arr[i];

arr = arr2;
}
}

int size() {
return size;
}

public String toString() {
StringBuilder qwerty = new StringBuilder();
for (int i = 0; i < arr.length; i++) {
if (arr[i] != null)
qwerty.append("arr[").append(i).append("] = ")
.append(arr[i].toString()).append("\n");

}
return qwerty.toString();

}

void remove(int index) {
Object[] arr3 = new Object[arr.length];
int indexInArr3 = 0;
for (int i = 0; i < arr.length; i++) {

if (index > size)
throw new IndexOutOfBoundsException();
if (i != index) {
arr3[indexInArr3] = arr[i];
indexInArr3++;
}
arr[i] = arr3[i];

}
arr = arr3; // old to new
}

public static void main(String[] args) { //тестер
AL instance = new AL(1);
System.out.println("initial array:");
instance.add("ASASDFASD");
instance.add("qwert");
instance.add("asdfgh");
System.out.print(instance);

System.out.println("\nafter remove:");
instance.remove(0);
instance.remove(1);
System.out.print(instance);
}

}

Bonus: Додатково необхідно буде написати Компаратор для елементів в черзі (... implements Comparator Integers { } )

Немає коментарів:

Дописати коментар