Структуры данных Flashcards
Array(Массив)
int[] scores = new int[3];
int[] numbers = new int[] {12, 20 , 32 ,47, 55};
scores[1] = 500;
Arrays.sort()
Arrays.copy()
Arrays.binarySearch()
Arrays.equals()
+ быстрый доступ к элементу по индексу
- фиксированный размер
- медленный поиск при большом количестве элементов
ArrayList
ArrayList<Integer> numbers = new ArrayList<>();
numbers.add(1)
ArrayList.remove()
\+ динамический размер
\+ быстрый доступ к элементу по индексу
- медленный поиск
- медленные вставка и удаление при переполнении массива</Integer>
LinkedList
LinkedList<String>colors = new LinkedList<>();
colors.add(”red”);
colors.remove(1);
LinkedList.contains(”red”)
LinkedList.get(2)
\+ динамический размер
\+ быстрая вставка/удаление в середину списка
- операции модификации в середине списка требуют дополнительного обхода, так как храним ссылку только на первый и последний элементы
- Проигрывает ArrayList по многим параметрам, но рекомендован если идет активная работа внутри листа</String>
Set
В сет присутствуют только уникальные элементы благодаря реализации на Map, где в ключе наше значение, а в значении new Object()
HashSet - порядок не гарантирован
LinkedHashSet - порядок гарантирован(двусторонние связи)
TreeSet - элементы отсортированы(дерево)
Map
Хранит данные ключ- значение
HashMap
LinkedHashMap
TreeMap
HashMap
HashMap<String, Integer> mountains = new Hashmap<>();
Map<String, String> countriesCapitals = new Hashmap<>();
mountains.put(”Goverla”, 2142)
Порядок не гарантирован
LinkedHashMap
LinkedHashMap<String, Integer> mountains = new LinkedHashmap<>();
Map<String, String> countriesCapitals = new LinkedHashmap<>();
mountains.put(”Goverla”, 2142)
Запоминает порядок благодаря двунаправленным связям, но занимает больше месте чем HashMap
TreeMap
Map<String, Integer> digits = TreeMap<>();
digits.put(”Один”, 1)