-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path23-ArrayListChanged_ver2
More file actions
85 lines (57 loc) · 2.35 KB
/
Copy path23-ArrayListChanged_ver2
File metadata and controls
85 lines (57 loc) · 2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package lesson23;
/* Создайте класс динамического массива, в котором реализована проверка выхода
* за границы массива. Перегрузите операторы: [ ], =, +, -,++ (добавление элемента
* в конец массива), -- (удаление элемента из конца массива).
*
* Создаём свой класс ArrayList, в котором перегружаем методы:
* add();
* add(int pos, Element e);
* set();
* remove();
*/
import java.util.ArrayList;
public class ArrayListChanged extends ArrayList<Object>{
@Override
public boolean add(Object e){
super.add(e); // вызов метода суперкласса можно здесь
System.out.println("Добавлен элемент " + e);
return true;
}
// если добавляемый элемент находится за границами коллекции, то
// расширяем её до нужного размера, и добавляем этот элемент
@Override
public void add(int pos, Object e){
try {
super.add(pos, e); // вызов метода суперкласса
} catch (IndexOutOfBoundsException outE) {
System.out.println("Расширяем до размера " + pos);
while (this.size() < (pos+1)) {
super.add(null);
}
super.set(pos, e);
}
System.out.println("Позиция: " + pos + " Добавлен элемент " + e);
}
@Override
public Object set(int pos, Object e) {
System.out.println("Установить в позицию " + pos + " элемент " + e);
return e;
}
@Override
public Object remove(int pos) {
System.out.println("Удалить позицию " + pos);
return this;
}
public static void main(String[] args) {
ArrayListChanged changed = new ArrayListChanged();
changed.add("First Element"); // переопреденённый метод
System.out.println(changed);
changed.add(4, "Added"); // переопреденённый метод
System.out.println(changed);
// changed.set(2, 35.143);
// System.out.println(changed); // переопреденённый метод
//
// changed.remove(1);
// System.out.println(changed); // переопреденённый метод
}
}