java - 制作数组列表的副本而不循环

标签 java arrays

我有一个使用继承的数组,我认为基本上有一个包含食物和饮料的数组,看起来像这样

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

关于java - 制作数组列表的副本而不循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15577081/

相关文章:

java - JSP 表单和 Struts 1

java - int[]数组和BitSet的交集可以更快吗?

java - 使用 split 时,字符串数组中的第一个元素为空

python - 使用 numpy.save 保存 Numpy 二维数组列表(数组一起呈锯齿状)

java - 将单独的 java 应用程序集成为单个应用程序的模块

java - 使用Predicate和子文档$type查询mongodb

java - LuaJ 数组/列表类型安全

java - 如何将多项 Activity 合而为一

ios - 如何公开提供动态数据但在编译时可访问的 API?

c - 当内存不足时,如何防止变长数组崩溃?