从数组中检索特定范围的数据(Java)

时间:2011-04-17 18:46:15

标签: java arrays instruments midi

我想使用默认的128个MIDI乐器填充ComboBox,但是调用Synthesizer.getDefaultSoundbank().getInstruments()会返回一个每个乐器列表(我的机器上超过400个)。

然后我将所有可用乐器的列表复制到Object数组(名为_instruments),虽然它给了我所需要的一切,但只需要前128个元素

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

是否有特定的方法来获取第一组仪器,或者是否可以在数组中的前128个元素之后简单地修剪任何东西?那样我只剩下第一套全套。

我希望这是有道理的,这是一个尴尬的场景。谢谢!

2 个答案:

答案 0 :(得分:5)

最短且更舒适的方法是使用Arrays.copyOf。见下文:

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

有关详细信息,请参阅Javadoc

答案 1 :(得分:2)

Java自己的Arrays.copyOfRange(..)如何提取前128个?