Java 15.10.2023
This commit is contained in:
parent
23b1b7d778
commit
f420ecb126
205
Java/Java.md
205
Java/Java.md
@ -412,17 +412,194 @@ x = y; // Автораспаковка
|
|||||||
|
|
||||||
Основные виды:
|
Основные виды:
|
||||||
|
|
||||||
* Set
|
* *Set*
|
||||||
* HashSet
|
* *HashSet*
|
||||||
* TreeSet
|
* *TreeSet*
|
||||||
* SortedSet
|
* *SortedSet*
|
||||||
* List
|
* *List*
|
||||||
* ArrayList
|
* *ArrayList*
|
||||||
* LinkedList
|
* *LinkedList*
|
||||||
* Vector
|
* *Vector*
|
||||||
* Stack
|
* *Stack*
|
||||||
* Map
|
* *Map*
|
||||||
* HashMap
|
* *HashMap*
|
||||||
* TreeMap
|
* *TreeMap*
|
||||||
* SortedMap
|
* *SortedMap*
|
||||||
* Hashtable
|
* *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
|
||||||
|
Reference in New Issue
Block a user