Java 如何计算和列出数组中的奇数 公共类OddsAndEvens{ //对数组中的所有奇数进行计数 私有静态整数计数几率(整数[]数组){ 整数计数=0; for(int i=0;iI%2!=0)。toArray()建议OP始终根据使用大括号,大括号用于if、else、for、do和while语句,即使正文为空或仅包含一条语句。建议OP始终根据使用大括号,大括号用于if、else、for、do和while语句,即使主体为空或仅包含一条语句。

Java 如何计算和列出数组中的奇数 公共类OddsAndEvens{ //对数组中的所有奇数进行计数 私有静态整数计数几率(整数[]数组){ 整数计数=0; for(int i=0;iI%2!=0)。toArray()建议OP始终根据使用大括号,大括号用于if、else、for、do和while语句,即使正文为空或仅包含一条语句。建议OP始终根据使用大括号,大括号用于if、else、for、do和while语句,即使主体为空或仅包含一条语句。,java,arrays,Java,Arrays,忽略与evens相关的代码。运行奇数数组时,只列出一个奇数,而不是第一个数组中的其他奇数以及两个零。我尝试了很多方法,但根本不会计算所有的奇数。看看这部分: public class OddsAndEvens { // counts all the odd numbers in the array private static int countOdds(int[] array) { int count = 0; for(int i = 0;

忽略与evens相关的代码。运行奇数数组时,只列出一个奇数,而不是第一个数组中的其他奇数以及两个零。我尝试了很多方法,但根本不会计算所有的奇数。

看看这部分:

public class OddsAndEvens {

    // counts all the odd numbers in the array
    private static int countOdds(int[] array) {
        int count = 0;

        for(int i = 0; i < array.length; i++) {
            if(array[i] % 2 == 1 && array[i] % 2 != 0) {
                count++;

            }
        }
        return count;

    }

    // returns an array with all the odd numbers
    public static int[] getAllOdds(int[] array) {
        int[] yaArray = new int[countOdds(array)];
        int j = 0;

        for(int i = 0; i < array.length; i++) {
            if(array[i] % 2 == 1 && array[i] % 2 != 0) {
                yaArray[j] = array[i];

            }
            j++;

        }
        return yaArray;

    }
}

///////////////////////////////////////////////////////////
runner code

public class OddsAndEvensRunner {

    public static void main(String args[]) {
        System.out.println("Odds - " + Arrays.toString(OddsAndEvens.getAllOdds(new int[]{2,4,6,8,10,12,14})));
        System.out.println("Evens - " + Arrays.toString(OddsAndEvens.getAllEvens(new int[]{2,4,6,8,10,12,14})));
        System.out.println("\nOdds - " + Arrays.toString(OddsAndEvens.getAllOdds(new int[]{1,2,3,4,5,6,7,8,9})));
        System.out.println("Evens - " + Arrays.toString(OddsAndEvens.getAllEvens(new int[]{1,2,3,4,5,6,7,8,9})));
        System.out.println("\nOdds - " + Arrays.toString(OddsAndEvens.getAllOdds(new int[]{2,10,20,21,23,24,40,55,60,61})));
        System.out.println("Evens - " + Arrays.toString(OddsAndEvens.getAllEvens(new int[]{2,10,20,21,23,24,40,55,60,61})));

    }
}

请看这一部分:

public class OddsAndEvens {

    // counts all the odd numbers in the array
    private static int countOdds(int[] array) {
        int count = 0;

        for(int i = 0; i < array.length; i++) {
            if(array[i] % 2 == 1 && array[i] % 2 != 0) {
                count++;

            }
        }
        return count;

    }

    // returns an array with all the odd numbers
    public static int[] getAllOdds(int[] array) {
        int[] yaArray = new int[countOdds(array)];
        int j = 0;

        for(int i = 0; i < array.length; i++) {
            if(array[i] % 2 == 1 && array[i] % 2 != 0) {
                yaArray[j] = array[i];

            }
            j++;

        }
        return yaArray;

    }
}

///////////////////////////////////////////////////////////
runner code

public class OddsAndEvensRunner {

    public static void main(String args[]) {
        System.out.println("Odds - " + Arrays.toString(OddsAndEvens.getAllOdds(new int[]{2,4,6,8,10,12,14})));
        System.out.println("Evens - " + Arrays.toString(OddsAndEvens.getAllEvens(new int[]{2,4,6,8,10,12,14})));
        System.out.println("\nOdds - " + Arrays.toString(OddsAndEvens.getAllOdds(new int[]{1,2,3,4,5,6,7,8,9})));
        System.out.println("Evens - " + Arrays.toString(OddsAndEvens.getAllEvens(new int[]{1,2,3,4,5,6,7,8,9})));
        System.out.println("\nOdds - " + Arrays.toString(OddsAndEvens.getAllOdds(new int[]{2,10,20,21,23,24,40,55,60,61})));
        System.out.println("Evens - " + Arrays.toString(OddsAndEvens.getAllEvens(new int[]{2,10,20,21,23,24,40,55,60,61})));

    }
}

使用列表而不是数组。列表更适合使用

试着这样,

public static int[] getAllOdds(int[] array) // when 
{
    int[] yaArray = new int[countOdds(array)];
    int j = 0;
    for(int i = 0; i<array.length;i++)
    {
        if(array[i]%2==1)
        {
            yaArray[j]=array[i];
            j++;
        }
    }
    return yaArray;
}
publicstaticvoidmain(字符串[]args){
System.out.println(“赔率-”+数组.toString(getAllEvens(新的int[]{1,2,3,4,5,6,7,8,9}));
System.out.println(“Evens-”+array.toString(getAllods(新的int[]{1,2,3,4,5,6,7,8,9}));
}
公共静态对象[]GetAllods(int[]数组){
列表=新的ArrayList();
for(整数编号:数组){
如果(否%2!=0)
列表。添加(编号);
}
return list.toArray();
}
公共静态对象[]getAllEvens(int[]数组){
列表=新的ArrayList();
for(整数编号:数组){
如果(否%2==0)
列表。添加(编号);
}
return list.toArray();
}

您还可以返回
list
而不是
list.toArray()
,以获得更好的列表。

使用list而不是数组。列表更适合使用

试着这样,

public static int[] getAllOdds(int[] array) // when 
{
    int[] yaArray = new int[countOdds(array)];
    int j = 0;
    for(int i = 0; i<array.length;i++)
    {
        if(array[i]%2==1)
        {
            yaArray[j]=array[i];
            j++;
        }
    }
    return yaArray;
}
publicstaticvoidmain(字符串[]args){
System.out.println(“赔率-”+数组.toString(getAllEvens(新的int[]{1,2,3,4,5,6,7,8,9}));
System.out.println(“Evens-”+array.toString(getAllods(新的int[]{1,2,3,4,5,6,7,8,9}));
}
公共静态对象[]GetAllods(int[]数组){
列表=新的ArrayList();
for(整数编号:数组){
如果(否%2!=0)
列表。添加(编号);
}
return list.toArray();
}
公共静态对象[]getAllEvens(int[]数组){
列表=新的ArrayList();
for(整数编号:数组){
如果(否%2==0)
列表。添加(编号);
}
return list.toArray();
}

您也可以返回
list
而不是
list.toArray()
,以获得更好的列表。

您的代码有什么问题?如果(数组[i]%2==1和数组[i]%2!=0)是冗余的,不是吗?请使用调试器逐步执行您的程序。(我怀疑你会发现
j++
getAllOdds()
中的
for
循环之外,不管它看起来如何。)很好的定位@dave
返回IntStream.of(array).filter(I->I%2!=0)。toArray()你的代码出了什么问题?如果(数组[i]%2==1和数组[i]%2!=0)
是多余的,不是吗?请使用调试器逐步执行你的程序。(我怀疑你会发现
j++
getAllOdds()
中的
for
循环之外,不管它看起来如何。)很好的定位@dave
返回IntStream.of(array).filter(I->I%2!=0)。toArray()
建议OP始终根据使用大括号,大括号用于if、else、for、do和while语句,即使正文为空或仅包含一条语句。建议OP始终根据使用大括号,大括号用于if、else、for、do和while语句,即使主体为空或仅包含一条语句。