Skip to content

Commit e08f960

Browse files
author
Никита
committed
- Реализован интерфейс CollectionInterface
- Исправлен метод remove() в интерфейсе теперь void removeByIndex(int index) - Рефакторинг: addAll() теперь использует add() - Исправление generic-типов в интерфейсе
1 parent cfa6cee commit e08f960

File tree

3 files changed

+29
-8
lines changed

3 files changed

+29
-8
lines changed
Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
package input;
22

3+
import java.util.stream.Stream;
4+
35
public interface CollectionInterface<T> extends Iterable<T>{
4-
void add(T element); // important
5-
void removeByIndex(int index); // important
6+
boolean add(T element); // important
7+
boolean remove(T element);// important
8+
void removeByIndex(int index);
69
void clear(); // important
710
T get(int index);
811
int size(); // important
12+
boolean isEmpty();
13+
Stream<T> stream();
914
}

src/main/java/input/CustomCollection.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.Arrays;
44
import java.util.Iterator;
55
import java.util.NoSuchElementException;
6+
import java.util.Objects;
67
import java.util.stream.Stream;
78

89
/**
@@ -49,7 +50,8 @@ public CustomCollection(int initialCapacity) {
4950
this.elements = new Object[initialCapacity];
5051
}
5152

52-
public void add(T element) {
53+
@Override
54+
public boolean add(T element) {
5355
// Проверяем достаточно ли места для добавления
5456
if (size == elements.length) {
5557
// Если недостаточно, то увеличиваем размер списка
@@ -59,8 +61,10 @@ public void add(T element) {
5961
elements[size] = element;
6062
// Увеличиваем число элементов в массиве
6163
size++;
64+
return true;
6265
}
6366

67+
@Override
6468
public void removeByIndex(int index) {
6569
if (index < 0 || index >= size) {
6670
throw new IndexOutOfBoundsException("Index cannot be less then 0 or more then " + size);
@@ -81,21 +85,34 @@ public void removeByIndex(int index) {
8185
elements[--size] = null;
8286
}
8387

84-
// Не используется можно удалить
88+
@Override
89+
public boolean remove(T element) {
90+
for (int i = 0; i < size; i++) {
91+
if(Objects.equals(element, elements[i])) {
92+
removeByIndex(i);
93+
return true;
94+
}
95+
}
96+
return false;
97+
}
98+
99+
@Override
85100
public void clear() {
86101
for (int i = 0; i < size; i++) {
87102
elements[i] = null;
88103
}
89104
size = 0;
90105
}
91106

107+
@Override
92108
public T get(int index) {
93109
if (index < 0 || index >= size) {
94110
throw new IndexOutOfBoundsException("Индекс не может быть меньше 0 или больше " + size);
95111
}
96112
return (T) elements[index];
97113
}
98114

115+
99116
public T set(int index, T element) {
100117
if (index < 0 || index >= size) {
101118
throw new IndexOutOfBoundsException("Индекс не может быть меньше 0 или больше " + size);
@@ -113,6 +130,7 @@ public T set(int index, T element) {
113130
*
114131
* @return последовательный {@code Stream} элементов этой коллекции
115132
*/
133+
@Override
116134
public Stream<T> stream() {
117135
return (Stream<T>) Arrays.stream(elements, 0, size);
118136
}
@@ -138,10 +156,12 @@ public void addAll(CustomCollection<? extends T> collection) {
138156
}
139157
}
140158

159+
@Override
141160
public int size() {
142161
return size;
143162
}
144163

164+
@Override
145165
public boolean isEmpty() {
146166
return size == 0;
147167
}

test_clients.txt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +0,0 @@
1-
Иван Иванов|+79991234567|1001
2-
Мария Петрова|+79992345678|1002
3-
в|dasd|3
4-
Сергей Сидоров|+79993456789|1003

0 commit comments

Comments
 (0)