Найти в Дзене
Java

⚡ Java полезный совет

⚡ Java полезный совет

При работе с коллекциями часто нужно проверить элемент на наличие в списке.

Если использовать List.contains(), то поиск будет O(n) — медленно на больших данных.

Лучше сразу применять Set (например, `HashSet`) для поиска за O(1).

Пример

import java.util.*;

public class Main {

public static void main(String[] args) {

List<String> list = Arrays.asList("apple", "banana", "orange", "grape");

// Медленно — O(n)

boolean slowCheck = list.contains("orange");

// Быстро — O(1)

Set<String> set = new HashSet<>(list);

boolean fastCheck = set.contains("orange");

System.out.println("List check: " + slowCheck);

System.out.println("Set check: " + fastCheck);

}

}

📌 Итог:

- Для поиска в коллекции всегда используйте Set, если не нужен порядок.

- HashSet → быстрый доступ за O(1).

- TreeSet → доступ за O(log n), но с сортировкой элементов.

@javarush