Javanese Online

Пустой список, список из одного элемента, список из массива

Мы уже знакомы с классическим списком ArrayList и неизменяемой обёрткой Collections.unmodifiableList(). Теперь — о некоторых специальных списках.

Список из одного элемента

Если нужен неизменяемый список из одного элемента, используется Collections.singletonList(). Например, так:

class TruePunk {
    private final List<String> preferredMusicGenres = Collections.singletonList("punk");
    List<String> getPreferredMusicGenres() {
        return preferredMusicGenres;
    }
}

Пустой список

Если нужен пустой список, можно использовать Collections.emptyList(). Это неизменяемый список нулевого размера.

class PersonIndifferentToMusic {
    List<String> getPreferredMusicGenres() {
        return Collections.emptyList();
    }
}

Список из массива

Мостом между миром массивов и миром списков служит Arrays.asList(). Этот метод создаёт список, который проксирует операции чтения и записи к оригинальному массиву. Его метод add нерабочий (бросает исключение), т. к. размер нижележащего массива неизменен, а методы get(int index) и set(int index, Object value) читают и записывают массив соответственно.

String[] genresArray = { "metal", "metalcore", "symphonic metal", null, null };
System.out.println(Arrays.toString(genresArray));
genresArray[3] = "post-hardcore";
System.out.println(Arrays.toString(genresArray));
List<String> genresList = Arrays.asList(genresArray);
genresList.set(4, "progressive metal");
System.out.println(Arrays.toString(genresArray));
System.out.println(genresList);
[metal, metalcore, symphonic metal, null, null]
[metal, metalcore, symphonic metal, post-hardcore, null]
[metal, metalcore, symphonic metal, post-hardcore, progressive metal]
[metal, metalcore, symphonic metal, post-hardcore, progressive metal]
Комментарии
{"type":"lessonComments","id":"ca8949b8-a936-4104-8561-c07385de37f7","comments":[]}

Сообщить об ошибке

Javanese.Online в GitHub

Чаты и каналы в Telegram

RSS-лента