Вопросы с тегом «collections»

API коллекций предоставляют разработчикам набор классов и интерфейсов, облегчающих работу с коллекциями объектов.

3306
Как эффективно перебрать каждую запись на карте Java?

Если у меня есть объект, реализующий Mapинтерфейс на Java, и я хочу перебирать каждую содержащуюся в нем пару, каков наиболее эффективный способ прохождения карты? Будет ли порядок элементов зависеть от конкретной реализации карты, которую я имею для...

3124
Когда использовать LinkedList поверх ArrayList в Java?

Я всегда был один, чтобы просто использовать: List<String> names = new ArrayList<>(); Я использую интерфейс в качестве имени типа для переносимости , поэтому, когда я задаю такие вопросы, я могу переделать свой код. Когда следует LinkedListиспользовать снова ArrayListи...

1637
Сортировать карту <Key, Value> по значениям

Я относительно новичок в Java и часто нахожу, что мне нужно отсортировать Map<Key, Value>значения. Поскольку значения не являются уникальными, я обнаружил, что преобразую их keySetв arrayмассив и сортирую этот массив с помощью сортировки по массиву с помощью специального компаратора, который...

1194
Итерация по коллекции, избегая исключения ConcurrentModificationException при удалении объектов в цикле

Мы все знаем, что вы не можете сделать следующее из-за ConcurrentModificationException: for (Object i : l) { if (condition(i)) { l.remove(i); } } Но это, видимо, иногда работает, но не всегда. Вот некоторый конкретный код: public static void main(String[] args) { Collection<Integer> l = new...

1132
Как я могу инициализировать статическую карту?

Как бы вы инициализировали статический Mapв Java? Метод один: статический инициализатор Метод два: экземпляр инициализатора (анонимный подкласс) или какой-то другой метод? Каковы плюсы и минусы каждого? Вот пример, иллюстрирующий два метода: import java.util.HashMap; import java.util.Map; public...

1096
Как напрямую инициализировать HashMap (в буквальном смысле)?

Есть ли способ инициализации Java HashMap, как это ?: Map<String,String> test = new HashMap<String, String>{"test":"test","test":"test"}; Какой будет правильный синтаксис? Я не нашел ничего относительно этого. Это возможно? Я ищу самый короткий / быстрый способ поместить некоторые...

873
Является ли библиотека коллекций Scala 2.8 «самой длинной запиской о самоубийстве в истории»? [закрыто]

В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и,...

824
Эффективность Java «Двойная скобка инициализации»?

На этот вопрос есть ответы на Переполнение стека на русском : Что такое инициализация двойной скобки? В разделе « Скрытые возможности Java» в верхнем ответе упоминается инициализация двойной скобки с очень заманчивым синтаксисом: Set<String> flavors = new HashSet<String>() {{...

718
Как преобразовать массив в набор в Java

Я хотел бы преобразовать массив в набор в Java. Есть несколько очевидных способов сделать это (то есть с помощью цикла), но я хотел бы что-то более аккуратное, что-то вроде: java.util.Arrays.asList(Object[] a); Любые...

576
Способы перебора списка в Java

Будучи немного новым для языка Java, я пытаюсь ознакомиться со всеми способами (или, по крайней мере, с непатологическими), которые можно перебрать в списке (или, возможно, с другими коллекциями), а также с преимуществами или недостатками каждого из них. Для данного List<E> listобъекта я знаю...

538
Почему нет ConcurrentHashSet против ConcurrentHashMap

HashSet основан на HashMap. Если мы посмотрим на HashSet<E>реализацию, все было под управлением HashMap<E,Object>. <E>используется в качестве ключа HashMap. И мы знаем, что HashMapэто не потокобезопасно. Вот почему у нас ConcurrentHashMapв Java. Исходя из этого, я запутался, что...

538
Как преобразовать разделенную запятыми строку в ArrayList?

Есть ли какой-либо встроенный метод в Java, который позволяет нам преобразовывать разделенную запятыми строку в некоторый контейнер (например, массив, список или вектор)? Или мне нужно написать собственный код для этого? String commaSeparated = "item1 , item2 , item3"; ArrayList<String> items...