Добавил:
Rumpelstilzchen2018@yandex.ru Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

3-й семестр / Лекции / 7 - Презентация 2

.pdf
Скачиваний:
55
Добавлен:
25.12.2020
Размер:
772.48 Кб
Скачать

Центр дистанционного обучения

Лекция 7 Программирование на

Java

ФИО преподавателя: Зорина Наталья Валентиновна e-mail: zorina@mirea.ru,zorina_n@mail.ru

Online-edu.mirea.ru

online.mirea.ru

Центр дистанционного обучения

Collections Framework

public interface List<E> {

int size();

E get(int index); // 0 <= index < size()

boolean add(E element); // в конец списка, возвращает true

void clear(); boolean isEmpty();

...

}

 

 

 

 

 

 

0

1

2

3

4

size=5

 

 

 

 

 

 

 

 

“A”

“B”

“A”

“D”

“C”

 

 

 

 

 

 

 

 

 

online.mirea.ru

Центр дистанционного обучения

Collections Framework

public interface List<E> {

// Возвращает предыдущее значение:

E set(int index, E element); // должно быть: 0 <= index < size()

// Вставляет элемент на место index:

void add(int index, E element); // 0 <= index <= size()

// Возвращает удаленный элемент

E remove(int index); // 0 <= index < size()

...

}

0

1

2

3

4

size=5

 

 

 

 

 

“A”

“B”

“A”

“D”

“C”

 

 

 

 

 

 

 

online.mirea.ru

Центр дистанционного обучения

Collections Framework

public interface List<E> {

boolean contains(Object o);

int indexOf(Object o); // -1, если не найден int lastIndexOf(Object o); // -1, если не найден

// Удаляет только первый найденный объект: boolean remove(Object o); // true, если был удален

...

}

Для поиска используется метод Object.equals(Object). Эти методы принимают Object, а не E из-за сохранения

совместимости со старыми версиями Java.

online.mirea.ru

Центр дистанционного обучения

Collections Framework

int indexOf(Object o) {

for (int i = 0; i < size(); i++) { if (o.equals(get(i))

return i;

}

return -1;

}

online.mirea.ru

Центр дистанционного обучения

Collections Framework

List<String> list = new ArrayList<>();

list.add(“A”); list.add(“B”); list.add(“B”);

list.add(“A”);

int i1 = list.indexOf(“B”); // 1 int i2 = list.lastIndexOf(“B”); // 2

0

1

2

3

 

 

 

 

“A”

“B”

“B”

“A”

 

 

 

 

online.mirea.ru

Центр дистанционного обучения

Collections Framework

public class MyString {

private final String str;

public MyString(String str) { this.str = str; }

}

List<MyString> list = new ArrayList<>(); list.add(new MyString(“A”)); list.add(new MyString(“B”));

int i1 = list.indexOf(new MyString(“B”));

0 1

“A” “B”

online.mirea.ru

Центр дистанционного обучения

Collections Framework

List<MyString> list = new ArrayList<>(); list.add(new MyString(“A”));

list.add(new MyString(“B”));

 

0

1

 

 

 

 

“A”

“B”

int i1 = list.indexOf(new MyString(“B”));

 

 

 

 

 

 

 

// i1 = -1

 

 

new MyString(“B”).equals(new MyString(“B”));

 

 

// false

 

 

equals по умолчанию сравнивает так же, как ==

online.mirea.ru

Центр дистанционного обучения

Collections Framework

public class MyString {

private final String str;

public MyString(String str) { this.str = str; }

@Override

public boolean equals(Object o) { if (o instanceof MyString) {

MyString that = (MyString) o;

return this.str.equals(that.str);

} else {

return false;

}

}

}

online.mirea.ru

Центр дистанционного обучения

Collections Framework

List<MyString> list = new ArrayList<>();

list.add(new MyString(“A”)); list.add(new MyString(“B”));

int i1 = list.indexOf(new MyString(“B”));

// i1 = 1: сравнение MyString по значению

0 1

“A” “B”

online.mirea.ru