Заметил, что самыми частыми методами, которые я использую из класса Collections являются не sort() или reverse(), которые чаще других упоминаются в различных книжках, а... emptyList() и singletonList() Поэтому эта краткая заметка будет о них, на случай, если кто-нибудь о них до сих пор не знает.
Как ясно из названия Collections.emptyList() возвращает пустую коллекцию типа List. Т.е. теперь не надо делать return new ArrayList<Something>() в методах и плодить временные пустые объекты. Кроме незначительной экономии памяти код также получается более ясным, точно выражая намерения программиста. До кучи, там же есть такие методы как emptySet() и emptyMap(). (Кстати, в некоторых случаях возникает необходимость параметризовать вызов метода и делается это немного нетривиально — Collections.<Something>emptyList())
Также часто возникает необходимость вернуть объект типа List (либо Set, либо Map) с одним единственным элементом. В этом вам помогут методы singletonList(), singletonMap() либо singleton() (для Set-а).
Кстати, если вдруг эти методы вас чем-то не устроят, то рекомендую обратить взор на immutable коллекции из Google Guava, у которых есть удобный метод-билдер of() для конструирования коллекций из любого количества значений. См. ImmutableList.of(), ImmutableSet.of() и ImmutableMap.of(). Причем, если вызвать метод of() без аргументов, то он возвращает пустую коллекцию.
Как ясно из названия Collections.emptyList() возвращает пустую коллекцию типа List. Т.е. теперь не надо делать return new ArrayList<Something>() в методах и плодить временные пустые объекты. Кроме незначительной экономии памяти код также получается более ясным, точно выражая намерения программиста. До кучи, там же есть такие методы как emptySet() и emptyMap(). (Кстати, в некоторых случаях возникает необходимость параметризовать вызов метода и делается это немного нетривиально — Collections.<Something>emptyList())
Также часто возникает необходимость вернуть объект типа List (либо Set, либо Map) с одним единственным элементом. В этом вам помогут методы singletonList(), singletonMap() либо singleton() (для Set-а).
Кстати, если вдруг эти методы вас чем-то не устроят, то рекомендую обратить взор на immutable коллекции из Google Guava, у которых есть удобный метод-билдер of() для конструирования коллекций из любого количества значений. См. ImmutableList.of(), ImmutableSet.of() и ImmutableMap.of(). Причем, если вызвать метод of() без аргументов, то он возвращает пустую коллекцию.
Особенное удобство этих коллекций именно в иммутабельности. Ты всегда точно знаешь, что там будет лежать. И доступ к ним не требует никакой синхронизации.
ОтветитьУдалитьВ Groovy коллекции встроены в язык.
ОтветитьУдалитьdef list = []
def list = [1, 2, 3]
def map = [:]
Скоро допилят dynamic invoke и скорость будет почти как у java. В scala наверное тоже в язык встроены.
Play Casino Games Online in New York City - Mapyro
ОтветитьУдалитьFind your favorite live dealer table games, table games, poker rooms, 구리 출장마사지 For fun, 대구광역 출장마사지 try 충청북도 출장샵 your luck at one 당진 출장샵 of our 16-table NJ tables in New York 당진 출장안마 City.