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
|
||||
* 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
|
||||
|
Reference in New Issue
Block a user