Java collections

List — хранит упорядоченные елементы(могут быть одинаковые); Имеет такие реализации как LinkedList, ArrayList и Vector.

ArrayList

LinkedList

Когда использовать ArrayList и LinkedList?

Если нам требуется произвести большое количество вставок или удалений, то нам следует использовать LinkedList. Если у нас имеется мало вставок или удалений, но выполняется много поисковых операций, то тогда нам следует использовать ArrayList.

 

Set — коллекции, которые не содержат повторяющихся элементов.

Реализации: HashSet, TreeSet, LinkedHashSet

  • TreeSet — упорядочивает элементы по их значениям;
  • HashSet — упорядочивает элементы по их хэш ключам
  • LinkedHashSet — хранит элементы в порядке их добавления


Queue — интерфейс для реализации очереди.

Основные реализации: LinkedList, PriorityQueue.

принцип FIFO – first in first out.

Map — интерфейс для реализации элементов с их ключами.

Основные реализации: HashTable, HashMap, TreeMap, LinkedHashMap

  • HashTable — синхронизирована, объявлена уставревшей.
  • HashMap — порядок елементов рассчитывается по хэш ключу;
  • TreeMap — элементы хранятся в отсортированном порядке
  • LinkedHashMap — элементы хранятся в порядке вставки

Ключи в Мар не одинаковые

Java: циклы for, while, foreach, do..while

Цикл for от 0 до 5:

for (int i = 0; i < 5; i++){
    System.out.println(i);
}

Hint! В IDE Idea ввести fori + tab

Обратный отсчет, цикл while:

int i = 10;
while (i > 0){

    System.out.println(i);
    i--;
}

Массив, значения:

int numbers [] = {7, 12, 8, 12};
for (int i=0; i<numbers.length; i++)
{

    System.out.println(numbers[i]);
}

Цикл for each (аналог примера выше):

int numbers [] = {7, 12, 8, 12};
for (int number : numbers) {
    System.out.println(number);

Hint! В IDE Idea ввести iter + enter

Цикл с do while:

int i = 10;
do {
    System.out.println(i);
    i++;
} while (i < 15);

Java: массив

String [] array = new String[10]; //создаем массив на 10 строковых элементов
int [] numbers = new int [10]; //создаем массив на 10 целых чисел
int numbers [] = {7, 12, 8, 12}; // вариант объявления массива, не нужно указывать длину

array[0]= "test"; // добавляем 1 элемент в 0 индекс
for (int i = 0; i < array.length; i++) {
           System.out.println(array[i]);
       }
//выводим все значения элементов массива

int[] numbers = new int[]{1, 2, 3, 4, 5}; 
for (int i : numbers){
 System.out.println(i); 
} 
//вывод через цикл forEach
Arrays.sort(numbers);//сортировка по возрастанию
int c;
for (int i = 0; i < array.length ; i++) {
    for (int j = i ; j < array.length; j++) {
        if (array[i] < array[j]) {
            c = array[i];
            array[i] = array[j];
            array[j] = c;
        }
    }
}
//сортировка по убыванию
System.out.println(Arrays.toString(array));//вывод на консоль содержимого массива
       int [] array2 = Arrays.copyOf(array, array.length); //копируем содержимое массива в другой целиком
int [] array2 = Arrays.copyOf(array, 4); //копируем первые 4  элемента
int [] array2 = Arrays.copyOf(array, 2,5); //копируем со 2(включительно) по 5(не включительно)
Arrays.equals(array,array2); //сравниваем содержимое массивов
 int[] array = new int[10];

        for (int i = 0; i < array.length; i++)
        {
           array[i] = 10 - i;
        }
// заполнение массива числами от 10 до 1 

array.length; //длина массива