/
Elyumusa
/
SberJavaCourseBeginner
Обзор
Документация
Войти
/
Elyumusa
/
SberJavaCourseBeginner
Код
Запросы
2
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
hw_4
src/hw3/task3/MyArrayList.java
96 строк
2 KB
Elyumusa
Task 1, Task 2 and Task 3 completed
16 мар 2025, 20:37
16 мар 2025, 20:37
f0eb974
Код
Авторство
О чём код?
package hw3.task3; import java.util.Iterator; import java.util.Spliterator; import java.util.function.Consumer; public class MyArrayList<T> implements Iterable<T> { @Override public Iterator<T> iterator() { return new MyArrayListIterator<>(this); } protected T[] data; private int length; public int size(){ return length; } public MyArrayList(){ data = (T[]) new Object[10]; length = 0; } public void add(T element){ if(length == data.length){ T[] reinitialized= (T[]) new Object[data.length*2]; for(int i=0;i <data.length;i++){ reinitialized[i]=data[i]; } data=reinitialized; } data[length]=element; length++; } public boolean contains(T element){ if(length !=0){ boolean contains=false; for(T el: data){ if (el == element) { contains = true; break; } } return contains; }else{ return false; } } public boolean remove(T element){ boolean contains=false; if(length !=0){ for(int i=0;i<data.length;i++){ if (data[i] == element) { data[i]=null; contains=true; break; } } return contains; }else{ return false; } } @Override public Spliterator<T> spliterator() { return Iterable.super.spliterator(); } @Override public void forEach(Consumer<? super T> action) { for(T el: this){ action.accept(el); } } } class MyArrayListIterator<T> implements Iterator<T>{ MyArrayList<T> arrayList; public MyArrayListIterator(MyArrayList<T> arrayList){ this.arrayList=arrayList; } private int currentIndex=0; @Override public boolean hasNext() { return currentIndex<arrayList.size(); } @Override public T next() { return arrayList.data[currentIndex++]; } @Override public void remove() { Iterator.super.remove(); } }