Практическое программирование на Java к.ф.-м.н. Козлов Дмитрий Дмитриевич ddk@cs.msu.su Кафедра АСВК, Лаборатория Вычислительных комплексов.

Презентация:



Advertisements
Похожие презентации
Java Collections Framework (JCF) in Java Tutorial for students of universities Author: Oxana Dudnik.
Advertisements

1Georgiy KorneevJava Advanced / Новые возможности Java 5 Проблема 1 Метод void dump(Collection c) { for (Iterator i = c.iterator(); i.hasNext(); ) { Object.
Test 10 Вопрос 1. public class Test implements Iterator { // 1 private List list = new ArrayList (); // 2 public void addList(T... ts) { Collections.addAll(list,
Абстрактные типы данных 1. Абстрактная дата Date dt1, dt2; dt1 = new Date(1, Date.MARCH, 2006); dt2 = (Date)dt1.clone(); dt2.add(300); //
Test15 Вопрос 1. class AClass { } public class Test { public static void main (String... args) { ArrayList a = new ArrayList (); AClass aaaClass = new.
Test 17 Вопрос 1. public class TKO { public static void main(String[] args) { String s = "-"; Integer x = 343; long L343 = 343L; if (x.equals(L343)) s.
Коллекции Макаревич Л. Г.. Что такое коллекции Коллекция – это объект для хранения множества объектов в одном месте. Это контейнер, куда можно поместить.
Исключения в Java Макаревич Л. Г.. Исключения – это механизм взаимодействия между кодом, приведшим к ошибке, и кодом, обрабатывающим ошибку Исключение.
Test 14 Вопрос 1. class Main { public void method() { static class One { public One() { System.out.println("From one"); } } public static void main(String...
Объектно-ориентированное программирование Особенности языка Java.
1 Коллекции Коллекции.NET 1.0 Классы коллекций заданы как часть пространства имен System.CollectionsSystem.Collections
Test 9 Вопрос 1. public class A { private String runNow() { return "High"; } static class B extends A { public String runNow() { return "Low"; } } public.
Test 13 Вопрос 1. public class StringTest { public static void main(String[] arg){ test(new String[] { null });} static void test(Object[] o){System.out.print(1);}
Контейнеры Сортировка Метод sort() Интерфейс Comparable метод int compareTo(Object o) вызов: Arrays.sort(a) Интерфейс Comparator метод int compare(Object.
© Luxoft Training 2013 Java Collections API. © Luxoft Training 2013 Collections hierarchy.
Test 20 Вопрос 1. public class Main { public static void var(Integer x, int y){ System.out.println("Integer int"); } public static void var(Object... x)
Test 4 Вопрос 1. public class TestOutput { public static void main(String[] args) throws IOException { PrintStream out = new PrintStream( new BufferedOutputStream(
Test 16 Вопрос 1. class Clazz { { System.out.println("non-static init"); } public static void main(String a[]) { System.out.println("main"); Clazz ob1.
Test 5 Вопрос 1. В результате компиляции каких строк будет происходить ошибка компиляции: public class Main { public static void main(String[] args) {
Test 11 Вопрос 1. class HashTest { private static Set set = new LinkedHashSet (); public static void main(String[] args) { set.add("one"); set.add("two");
Транксрипт:

Практическое программирование на Java к.ф.-м.н. Козлов Дмитрий Дмитриевич Кафедра АСВК, Лаборатория Вычислительных комплексов

Лекция 3. Библиотеки Java. Работа с коллекциями

Библиотека java.util Коллекции (контейнеры) – объекты, которые группируют другие объекты. Примеры коллекций: –Список –Стек –Хэш-таблица Библиотека коллекций (collections framework) предоставляет набор взаимосвязанных интерфейсов, реализаций и алгоритмов для работы с коллекциями.

Зачем нужна библиотека java.util Снижение количества кода, которое должен написать программист. Не задумываемся о низкоуровневых деталях. Повышение скорости создания программ и качества программ. Стандартизация API коллекций. Легкость освоения API программистом легкость создания новых API. Стандартный API коллекций – основа для повторного использования вновь создаваемых компонент

Иерархия классов

Интерфейс Collection public interface Collection extends Iterable { // Основные операции int size(); boolean isEmpty(); boolean contains(Object element); boolean add(E element); //опционально boolean remove(Object element); // опционально Iterator iterator(); // Множественные операции boolean containsAll(Collection c); boolean addAll(Collection c); // опционально boolean removeAll(Collection c); // опционально boolean retainAll(Collection c); // опционально void clear(); // опционально // Операции с массивами Object[] toArray(); T[] toArray(T[] a); }

Навигация по коллекции Итератор по коллекции: public interface Iterator { boolean hasNext(); E next(); void remove(); //опционально } Использование итератора: static void filter(Collection c) { for (Iterator it = c.iterator(); it.hasNext(); ) if (!cond(it.next())) it.remove(); }

Интерфейс Map public interface Map { // Основные операции V put(K key, V value); V get(Object key); V remove(Object key); boolean containsKey(Object key); boolean containsValue(Object value); int size(); boolean isEmpty(); // Множественные операции void putAll(Map m); void clear(); // Срезы коллекции public Set keySet(); public Collection values(); public Set > entrySet(); public interface Entry { K getKey(); V getValue(); V setValue(V value); }

Интерфейс Map: пример static boolean validate(Map attrMap, Set requiredAttrs, Set permittedAttrs) { boolean valid = true; Set attrs = attrMap.keySet(); if(!attrs.containsAll(requiredAttrs)) { Set missing = new HashSet (requiredAttrs); missing.removeAll(attrs); System.out.println("Missing attributes: " + missing); valid = false; } if (!permittedAttrs.containsAll(attrs)) { Set illegal = new HashSet (attrs); illegal.removeAll(permittedAttrs); System.out.println("Illegal attributes: " + illegal); valid = false; } return valid; }

public class Anagrams { public static void main(String[] args) { int minGroupSize = Integer.parseInt(args[1]); // Read words from file and put into a simulated multimap Map > m = new HashMap >(); try { Scanner s = new Scanner(new File(args[0])); while (s.hasNext()) { String word = s.next(); String alpha = alphabetize(word); List l = m.get(alpha); if (l == null) m.put(alpha, l=new ArrayList ()); l.add(word); } } catch (IOException e) { System.err.println(e); System.exit(1);} // Print all permutation groups above size threshold for (List l : m.values()) if (l.size() >= minGroupSize) System.out.println(l.size() + ": " + l); } private static String alphabetize(String s) { char[] a = s.toCharArray(); Arrays.sort(a); return new String(a); } }