【发布时间】:2016-12-02 15:40:15
【问题描述】:
我正在尝试编写一个方法,从数组中查找所有奇数整数并返回包含该整数的新数组。
【问题讨论】:
-
您是否考虑过创建一个 ArrayList(您不必定义其大小)来添加元素。然后,您可以轻松使用 ArrayList 类提供的
toArray()方法,该方法允许您从 ArrayList 转换为数组。 -
@Jay 这听起来像是一个早期的学术练习,它们可能还没有被引入到 ArrayLists 中
-
在您的程序中,您可以使用其他可用的 Java 集合吗?因为您需要在 filterOddHelp 中使用“动态数组”概念。 Java中没有“动态数组”这样的东西,所以最简单的方法是改用ArrayList。如果您只分配使用数组,那么可以使用 System.arraycopy 方法来实现“动态数组”功能。
-
... 或者,如果您绝对需要在递归中使用数组,请在您的
filterOdd函数中创建一次返回数组,作为输入m的副本,并且不要在每次迭代中重新创建它。如果值是奇数,则在每一步增加i,或者将其与最后一个(jth)元素交换,否则减少j。然后最后你需要根据最终的i或j值修剪你的数组。 -
@JonK 你是对的。我试图想办法在不泄露答案的情况下解释它,因为我认为这可能是一个有价值的学习练习!