java - 在不使用 ArrayList 的情况下声明一个大小未知的数组

标签 java arrays

有没有办法声明一个长度未知的数组?我的问题是从一系列数字中返回奇数的 int[]。我当前的输出是添加 0 来填充数组的剩余空间。

public class Practice {

   static int[] oddNumbers(int minimum, int maximum) {

     int[] arr = new int[10];
     int x = 0;
     int count = 0;

     for(int i = minimum; i <= maximum; i++){
        if(i % 2 != 0){
           arr[x] = i;
           ++x;    
        }
     }
     return arr;
   }

   public static void main(String[] args) {
     int min = 3, max = 9;
     System.out.println(Arrays.toString(oddNumbers(min, max)));
   } 
}

我当前的输出是 [3,5,7,9,0,0,0,0,0,0] 但我希望它是 3,5,7,9 它必须是数组而不是 ArrayList。这可能吗?还是有完全不同的方法?

最佳答案

好吧,在您的用例中,您确切地知道需要多少个数字。查看如何根据最小值和最大值查找两个数字之间的奇数个数。然后分配那么多:

int closestMin = minimum % 2 == 0 ? minimum + 1 : minimum;
int closestMax = maximum % 2 == 0 ? maximum - 1 : maximum;
int numberOfOdds = ((closestMax - closestMin) / 2) + 1;
int[] arr = new int[numberOfOdds];
....

关于java - 在不使用 ArrayList 的情况下声明一个大小未知的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45645173/

相关文章:

java - 如何使用 OWASP 编码器项目规范化内容

javascript - 从两个数组中删除重复值

javascript - 如何在 JavaScript 上的匿名函数中加入数组?

javascript - 用 JSON 数组填充表时,AngularJS ng-repeat 创建三个空行

Java JSONObject 数据丢失

java - 'Conditional expressions can be only boolean, not integral.' 是什么意思?

java - "A connector with id is already registered! "在 瓦丁

java.lang.NoClassDefFoundError : javax/el/ELManager

arrays - 使用 O(1) 辅助空间以相同顺序在数组中查找 k 个最小数字的算法

arrays - 交换整数算法