我有一个使用继承的数组,我想基本上是有一个保存食物和饮料的数组,看起来像这样
allFoodAndDrink.add(new Food(parameters);
allFoodAndDrink.add(new Drink(parameters);
因此,食物和饮料类型都存储在名为
allFoodAndDrink
的快餐数组中,但是当我想从某个起始索引到结束索引复制该数组时,我被告知要使用:Arrays.copyOfRange();
但是当这样使用它时:
int[] drink = Arrays.copyOfRange(allFoodAndDrink, 5, 10);
它吐出并出错,建议将其切换为
Arrays.copyOf()
,然后吐出另一个错误以恢复为上一步。有任何想法吗
最佳答案
使用ArrayList#subList()
和ArrayList#toArray()
:
int first = ...;
int last = ...;
Foods[] drink = new Foods[last - first];
allFoodAndDrink.subList(first, last).toArray(drink); // fill the array