Материал: 6 - Презентация 2 - Дженерики, Абстрактные типы данных, Стек

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

Generics – готовые классы

public interface List<E> {

int size();

void add(E elem);

void add(int index, E elem); E get(int index);

E set(int index, E elem); E remove(int index);

}

public class ArrayList<E> implements List<E> {

}

online.mirea.ru

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

Generics – готовые классы

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

list.add(“String 1”); list.add(“String 2”);

// [“String 1”, “String 2”]

String removed = list.remove(0);

// [“String 2”]

list.set(0, “String 2 revised”);

//[“String 2 revised”] list.add(0, “String 0”);

//[“String 0”, “String 2 revised”]

online.mirea.ru

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

Generics – готовые классы

Конвенция кода Java об именах типовых параметров:

<E> для элемента коллекции

<T> для обобщенного типа

<K, V> ключ и значение

Традиционно из одной буквы, но это не обязательно.

online.mirea.ru

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

Абстрактные типы данных (ADT)

Абстрактные типы данных – определяются своим поведением

– набором доступных операций (в отличие от описания их реализации).

В ООП абстрактный тип данных определяется набором методов.

online.mirea.ru

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

Абстрактные типы данных (ADT)

Абстрактный тип данных ≠ абстрактный класс. Пример ADT на основе конкретного класса:

public class ComplexNumber {

static ComplexNumber fromXY(double x, double y) { ... } static ComplexNumber fromPolar(double r, double phi) { ... } ComplexNumber add(ComplexNumber that) { ... }

...

}

Внутри класс ComplexNumber может быть представлен и в декартовых, и в полярных координатах. Для конечного

пользователя класса это неважно.

online.mirea.ru

Источник: https://studfile.net/preview/16403810/