Основы Java. Урок 088. ArrayList. Методы size, isEmpty, contains.
Java 1096. Напишите минимальный неблокирующий ArrayList (всего четыре метода — add(), get(), remove(), size()).
Ниже приведена минимальная реализация неблокирующего ArrayList с методами add(), get(), remove() и size(). Эта реализация использует атомарные операции CAS (Compare-and-Swap) для обеспечения неблокирующих операций. import java.util.concurrent.atomic.AtomicReferenceArray;
public class NonBlockingArrayList<T> {
private static final int DEFAULT_CAPACITY = 16;
private AtomicReferenceArray<T> array;
private AtomicInteger size;
public NonBlockingArrayList() {
this(DEFAULT_CAPACITY);
...
Язык JavaScript - Типы данных 2
Вы всё ещё используете обычные объекты для хранения пар "ключ-значение"? И массивы для проверки уникальности? Я вас понимаю. Это работает. Но работает плохо. Объекты путают строковые ключи, наследуют свойства от прототипа и не помнят порядок. А поиск в массиве - это всегда O(n), что медленно. Встречайте Map и Set - две структуры данных, которые были созданы, чтобы решить проблемы старых добрых объектов и массивов. Map - это коллекция ключ-значение, где ключом может быть что угодно: число, объект, функция, даже NaN...