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

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

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

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

Например:

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

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

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

<N> для чисел

S,U,V, и т.д. для второго, третьего, четвертого типа параметра

online.mirea.ru

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

ДЖЕНЕРИКИ (Generics)

Дженерики являются способом определить, какие типы допустимы в вашем классе или функции

// старыйспособ

List myIntList1 = new LinkedList(); // 1 myIntList1.add(new Integer(0)); // 2

Integer x1 = (Integer) myIntList1.iterator().next(); // 3

// с generics

List<Integer> myIntList2 = new LinkedList<Integer>(); // 1myIntList2.add(new Integer(0)); // 2

Integer x2 = myIntList2.iterator().next(); // 3

можно поместить здесь только 0, используя Автоупаковку

online.mirea.ru

7

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

Пример 1 – Определение обобщенных типов:

ДЖЕНЕРИКИ (Generics)

public interface List<E> { void add(E x); Iterator<E> iterator();

}

public interface Iterator<E> { E next();

boolean hasNext();

}

public interface Map<K,V> { V put(K key, V value);

}

online.mirea.ru

8

ДЖЕНЕРИКИ (Generics)

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

 

Пример 2 определение (собственных) универсальных или обобщенных типов:

public class GenericClass<T> { private T obj;

public void setObj(T t) {obj = t;} public T getObj() {return obj;} public void print() { System.out.println(obj);

}

}

Main:

GenericClass<Integer> g = new GenericClass<Integer>(); g.setObj(5); // автоупаковка

int i = g.getObj(); // автораспаковкаg.print();

online.mirea.ru

9

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

Абстрактные типы данныхконтейнеры

10

online.mirea.ru