繁体   English   中英

如何使用增强的 For 循环 Output 数组列表中的奇数个数

[英]How to Output the Number of Odd Numbers in an Array List Using an Enhanced For Loop

//我需要向用户询问他们想要的列表的大小,然后用数组列表为他们想要的大小列表生成随机数,output 列表。 这些步骤我已经完成,但是我必须使用增强的 for 循环 output 列表中的奇数个数,然后重新打印没有偶数的列表。//

import java.util.Scanner;
import java.util.ArrayList;

public class MyProgram
{
public static void main(String[] args)
{
  Scanner scan = new Scanner(System.in);
  System.out.println("How big would you like your list?");
  int decision = scan.nextInt();
  
  
  
  ArrayList<Integer> Rando = new ArrayList<Integer>();
  for (int i = 1; i <= decision; i++)
  {
      Rando.add((int)(Math.random()*100 + 1));
  }
  System.out.println();
  System.out.println(Rando);
  
  
  
  ArrayList<Integer> evens = Rando;
  for (int i = 0; i < evens.size(); i++)
  {      
    if (evens.get(i)%2 != 0) 
    {
        evens.remove(i);
       
    }    
  }
   
    
ArrayList<Integer> odds = Rando;
  for (int i = 0; i < odds.size(); i++)
  {      
    if (odds.get(i)%2 != 0) 
    {
        evens.remove(i);
    }    
  }
  System.out.println();
  System.out.println(odds);
  
  for(Integer number: Rando)
  {
      System.out.println();
      System.out.println("# of Odd Numbers: "+ odds.size());
      System.out.println();
      break;
  }
 
  System.out.println("List Without Evens: " + evens.remove);
  System.out.println();
  
  
}
  
}

你现在这样做的方式你不会在列表中留下任何东西。

ArrayList<Integer> evens = Rando;
... 
ArrayList<Integer> odds = Rando;

这将修改原始列表。 在前两个循环之后,您将不会在列表中留下任何东西,这会删除偶数,然后是奇数。 我认为您应该创建一个新列表。

  ArrayList<Integer> evens = new ArrayList<>();
  for (int i = 0; i < Rando.size(); i++)
  {      
    if (Rando.get(i)%2 == 0) 
    {
        evens.add(Rando.get(i));
       
    }    
  }

现在使用for-each循环变得更容易了。

  ArrayList<Integer> evens = new ArrayList<>();
  for (int x : Rando )
  {      
    if (x%2 == 0) 
    {
        evens.add(x);
       
    }    
  }

请记住,您需要修改您现在拥有的循环。 Rando将完全不包含任何元素,因此您必须每次更改现有代码或重新创建随机数列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM