Java 15.10.2023

This commit is contained in:
StNicolay 2023-10-15 17:58:21 +00:00
parent 23b1b7d778
commit f420ecb126

View File

@ -412,17 +412,194 @@ x = y; // Автораспаковка
Основные виды:
* Set
* HashSet
* TreeSet
* SortedSet
* List
* ArrayList
* LinkedList
* Vector
* Stack
* Map
* HashMap
* TreeMap
* SortedMap
* Hashtable
* *Set*
* *HashSet*
* *TreeSet*
* *SortedSet*
* *List*
* *ArrayList*
* *LinkedList*
* *Vector*
* *Stack*
* *Map*
* *HashMap*
* *TreeMap*
* *SortedMap*
* *Hashtable*
### Итераторы
Позволяет перебирать значения коллекций. Может использоваться для неупорядоченных коллекций
```Java
Set<String> set = new HashSet<String>();
set.add("A");
set.add("B");
Iterator<String> iter = set.iterator();
while (iter.hasNext()) {
String text = iter.next();
System.out.println(text);
}
```
```Java
Map<String, String> map = new HashMap<String, String>();
map.put("first", "A");
Iterator<Map.Entry<String, String>> iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry<String, String> pair = iter.next();
String key = pair.getKey();
String value = pair.getValue();
System.out.println(key + ":" + value);
}
```
Можно использовать *foreach*
```Java
Set<String> set = new HashSet<String>();
set.add("A");
set.add("B");
for (String text : set) {
System.out.println(text);
}
```
### ArrayList
```Java
ArrayList<Integer> nums = new ArrayList<int>();
nums.add(5);
nums.add(5);
nums.add(5);
nums.add(5);
nums.add(5);
System.out.println(nums.get(1));
System.out.println(nums.indexOf(5));
System.out.println(nums.contains(3));
nums.add(4, 3); // insert`ит на 4 индекс число 3
nums.set(4, 5); // Меняет число на 4 индексе на 5
System.out.println(nums.toString());
nums.clear();
nums.add(5);
nums.add(5);
nums.add(5);
Integer[] numss = nums.toArray(new Integer[0]);
nums = new ArrayList<>(Arrays.asList(numss));
Collections.sort(nums);
```
Ещё методы у Collections:
* *min*
* *max*
* *reverse*
* *shuffle*
* *swap*
* *disjoint* - если есть пересечение коллекций, то false, иначе true
#### Неизменяемый список
```Java
List<Integer> = Collections.unmodifiableList(new ArrayList<>(Arrays.asList(1, 2, 3)));
```
### LinkedList
*LinkedList* - двусвязный список
```Java
LinkedList<Integer> nums = new LinkedList<Integer>();
nums.add(5);
nums.add(5);
nums.add(5);
```
Особые методы:
* *addFirst*
* *addLast*
* *peekFirst*
* *peekLast*
* *pollFirst* - получить первый и удалить его (null, если пусто)
* *pollLast*
### Vector
*Vector* - синхронизированный *ArrayList*, который всё хранит как Object. Синтаксис страшный.
### Stack
*Stack* - LIFO
Методы:
* *empty* - возвращает bool
* *peek*
* *pop*
* *push*
* *search* - возвращает offset от вершины стека
### Deque
*Deque* - двунаправленный стек с фиксированной длинной
Методы:
* *addFirst*
* *addLast*
* *getFirst* - без удаления
* *getLast*
* *offerFirst*
* *offerLast*
* *peekFirst*
* *peekLast*
* *pollFirst* - с удалением
* *pollLast*
### ArrayDeque
*ArrayDeque* - двунаправленный стек с динамической длиной
Методы:
* *addFirst*
* *addLast*
* *getFirst* - без удаления
* *getLast*
* *pollFirst* - с удалением
* *pollLast*
### HashSet
Аля питон. Использует метод hashCode() для получения хеша значений
Методы:
* add
* remove
* contains
* size
* clear
* isEmpty
* iterator