
[英]Using enhanced for loop to return the index of the largest number in an array
[英]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.