Получение определенного диапазона данных из массива (Java) - PullRequest
1 голос
/ 17 апреля 2011

Я хочу заполнить ComboBox стандартными 128 MIDI-инструментами, но вызов Synthesizer.getDefaultSoundbank().getInstruments() возвращает список каждого доступного инструмента (более 400 на моем аппарате).

Затем я копирую список всех доступных инструментов в массив Object (названный _instruments), хотя он дает мне все, что мне может понадобиться, мне нужны только первые 128 элементов .

            _soundbank = _synthesizer.getDefaultSoundbank();
            _synthesizer.loadAllInstruments(_soundbank);
            _synthesizer.close();   
            _instrument = _soundbank.getInstruments();

Есть ли конкретный способ получить первый набор инструментов или можно было бы просто обрезать что-нибудь после первых 128 элементов в массиве?Таким образом, у меня останется только первый полный набор.

Надеюсь, это имеет смысл, это неловкий сценарий.Спасибо!

Ответы [ 2 ]

5 голосов
/ 21 апреля 2011

Самый короткий и удобный способ сделать это - использовать Arrays.copyOf. Смотри ниже:

_instrument = Arrays.copyOf(_soundbank.getInstruments(), 128);

См. Javadoc для получения дополнительной информации.

2 голосов
/ 21 апреля 2011

А как насчет Java Arrays.copyOfRange (..) для извлечения первых 128?

...