Как создать коллекцию java
Для создания своей коллекции в Java
нужно определить новый класс, который будет реализовывать интерфейс Collection
или его подклассы, например, List
или Set
В этом классе нужно реализовать все методы, объявленные в интерфейсе, включая методы добавления, удаления, поиска и перебора элементов коллекции.
Вот пример реализации простой коллекции на основе массива:
import java.util.*;
public class MyCollection<E> implements Collection<E> {
private E[] elements;
private int size = 0;
public MyCollection() {
elements = (E[]) new Object[10];
}
@Override
public boolean add(E e) {
if (size == elements.length) {
elements = Arrays.copyOf(elements, size * 2);
}
elements[size++] = e;
return true;
}
@Override
public boolean remove(Object o) {
for (int i = 0; i < size; i++) {
if (Objects.equals(elements[i], o)) {
System.arraycopy(elements, i + 1, elements, i, size - i - 1);
elements[--size] = null;
return true;
}
}
return false;
}
@Override
public int size() {
return size;
}
@Override
public boolean isEmpty() {
return size == 0;
}
@Override
public boolean contains(Object o) {
for (int i = 0; i < size; i++) {
if (Objects.equals(elements[i], o)) {
return true;
}
}
return false;
}
@Override
public Iterator<E> iterator() {
return new MyIterator();
}
@Override
public void clear() {
Arrays.fill(elements, null);
size = 0;
}
private class MyIterator implements Iterator<E> {
private int currentIndex = 0;
@Override
public boolean hasNext() {
return currentIndex < size;
}
@Override
public E next() {
return elements[currentIndex++];
}
@Override
public void remove() {
MyCollection.this.remove(elements[currentIndex]);
}
}
}
В этом примере мы создаем новый класс MyCollection
, который реализует интерфейс Collection
с помощью дженериков. В этой коллекции мы используем массив elements
для хранения элементов, и переменную size
для отслеживания количества элементов в массиве.
Мы реализуем методы интерфейса Collection
, включая методы добавления, удаления, поиска и перебора элементов коллекции.