Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемОльга Парышева
1 Практическое программирование на Java к.ф.-м.н. Козлов Дмитрий Дмитриевич Кафедра АСВК, Лаборатория Вычислительных комплексов
2 Лекция 3. Библиотеки Java. Работа с коллекциями
3 Библиотека java.util Коллекции (контейнеры) – объекты, которые группируют другие объекты. Примеры коллекций: –Список –Стек –Хэш-таблица Библиотека коллекций (collections framework) предоставляет набор взаимосвязанных интерфейсов, реализаций и алгоритмов для работы с коллекциями.
4 Зачем нужна библиотека java.util Снижение количества кода, которое должен написать программист. Не задумываемся о низкоуровневых деталях. Повышение скорости создания программ и качества программ. Стандартизация API коллекций. Легкость освоения API программистом легкость создания новых API. Стандартный API коллекций – основа для повторного использования вновь создаваемых компонент
5 Иерархия классов
6 Интерфейс 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); }
7 Навигация по коллекции Итератор по коллекции: 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(); }
8 Интерфейс 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); }
9 Интерфейс 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; }
10 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); } }
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.