/
eelamimi
/
SberJavaCourseBeginner
Обзор
Документация
Войти
/
eelamimi
/
SberJavaCourseBeginner
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/courseSber/homework/hw3/task3/MyArrayList.java
110 строк
2 KB
glebka
task 3.3 complete
09 мар 2025, 23:42
09 мар 2025, 23:42
dd54bf7
Код
Авторство
О чём код?
package courseSber.homework.hw3.task3; import java.util.Arrays; import java.util.Iterator; import java.util.NoSuchElementException; public class MyArrayList<S> implements Iterable<S>{ private S[] arr; private int size; public MyArrayList() { this.arr = (S[]) new Object[1]; this.size = 0; } public MyArrayList(S[] arr) { this.arr = arr; this.size = arr.length; } public int size() { return size; } public S get(int ind) { return arr[ind]; } public void set(int ind, S el) { if (0 <= ind && ind < size) { arr[ind] = el; } else { throw new ArrayIndexOutOfBoundsException("Индекс выходит за пределы массива"); } } public int add(S el) { if (size == arr.length) { S[] arrBuf = (S[]) new Object[arr.length + 1]; System.arraycopy(arr, 0, arrBuf, 0, size); arr = arrBuf; } arr[size] = el; size++; return size - 1; } public int indexOf(S el) { for (int i = 0; i < size; i++) { if (arr[i].equals(el)) { return i; } } return -1; } public boolean contains(S el) { for (int i = 0; i < size; i++) { if (arr[i].equals(el)) { return true; } } return false; } public boolean remove(S el) { if (contains(el)) { return remove(indexOf(el)); } else { return false; } } public boolean remove(int ind) { if (!(0 <= ind && ind < size)) { return false; } S[] arrBuf = (S[]) new Object[arr.length - 1]; System.arraycopy(arr, 0, arrBuf, 0, ind); System.arraycopy(arr, ind + 1, arrBuf, ind, arr.length - ind - 1); arr = arrBuf; size--; return true; } @Override public String toString() { return "Массив: " + Arrays.toString(arr); } @Override public Iterator<S> iterator() { return new Iterator<>() { private int curInd = 0; @Override public boolean hasNext() { return curInd < size; } @Override public S next() { if (!hasNext()) { throw new NoSuchElementException(); } return arr[curInd++]; } }; } }