Java 如何显示arraylist中的偶数和3的倍数
对不起,也许我没有解释清楚。这是我的做法 输入一个正整数。如果输入不是正的,那么您的算法应该输出一条错误消息,并重新提示用户输入。此过程应继续循环,直到输入有效。然后,您的算法应该输出输入是否为偶数和3的倍数。注意:您的解决方案必须适当使用子模块 我必须创建一个从用户输入中获取正数的方法,并且我需要从这个ArrayList中显示偶数和3的倍数。我已经为此编写了代码,但我一直在为如何使用另一个子模块来显示此ArrayList而挣扎Java 如何显示arraylist中的偶数和3的倍数,java,arraylist,Java,Arraylist,对不起,也许我没有解释清楚。这是我的做法 输入一个正整数。如果输入不是正的,那么您的算法应该输出一条错误消息,并重新提示用户输入。此过程应继续循环,直到输入有效。然后,您的算法应该输出输入是否为偶数和3的倍数。注意:您的解决方案必须适当使用子模块 我必须创建一个从用户输入中获取正数的方法,并且我需要从这个ArrayList中显示偶数和3的倍数。我已经为此编写了代码,但我一直在为如何使用另一个子模块来显示此ArrayList而挣扎 import java.util.ArrayList; impor
import java.util.ArrayList;
import java.util.*;
public class Array {
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
ArrayList<Integer> list;
list = new ArrayList<Integer>();
int number = -1;
printList(list, number );
System.out.println("Enter number. Enter 0 to end.");
while (true)
{
System.out.print(" ");
number = sc.nextInt();
while( number < 0)
{
System.out.print("Enter your next positive integer, or 0 to end: ");
number = sc.nextInt();
}
if (number == 0)
break;
list.add(number);
}
}
public static void printList (ArrayList<Integer> list, int number)
{
for(int i = 0;i <= number.size(); i++)
{
if(i % 2 ==0 && i % 3 ==0)
{
System.out.println(list(i));
}
}
}
}
好的,我明白你的问题了,看起来你无法打印列表,你应该稍微修改一下你的代码 您只需在while循环之后粘贴printList
while (true)
{
System.out.print(" ");
number = sc.nextInt();
while( number < 0)
{
System.out.print("Enter your next positive integer, or 0 to end: ");
number = sc.nextInt();
}
if (number == 0)
break;
list.add(number);
}
printList(list);
您的printlist方法不正确,应该是这样的
public void printlist(List<Integer> numberList){
for(int i = 0;i <= numberList.size(); i++)
{
if(i % 2 ==0 && i % 3 ==0)
{
System.out.println(numberList.get(i));
}
}
}
希望这有帮助!
祝你好运
printList方法可以从循环内部调用
必须检查列表的大小,而不是数量。
请参阅下面的代码帮助
public class Array {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Integer> list;
list = new ArrayList<Integer>();
int number = -1;
System.out.println("Enter number. Enter 0 to end.");
while (true) {
System.out.print(" ");
number = sc.nextInt();
while (number < 0) {
System.out.print("Enter your next positive integer, or 0 to end: ");
number = sc.nextInt();
}
if (number == 0) {
sc.close();
break;
}
list.add(number);
printList(list, number); // Moved the print here.
}
}
public static void printList(ArrayList<Integer> list, int number) {
for (int i = 0; i <= list.size(); i++) { // You have to get size on
// list.
if (i % 2 == 0 && i % 3 == 0) { // Are you planning to check the
// index or the content in the list
// ?
System.out.println(list.get(i)); // Get the number from list
}
}
}
}
我想你正在寻找一个这样的程序,对吗
public class Array {
public static void main(String... args) {
Scanner sc = new Scanner(System.in);
List<Integer> list = new ArrayList<>();
int number;
do {
System.out.print("Enter a positive integer or 0 to end: ");
number = sc.nextInt();
if (number > 0) { list.add(number); }
} while (number != 0);
for (int i = 0; i < list.size(); i++) {
int number = list.get(i);
if (number % 2 == 0 && number % 3 == 0) {
System.out.println(number);
}
}
}
}
从用户那个里得到一个正数和问题的其余部分有什么关系?如果只要求一个数字,则列表只有一个长度,并且列表中没有偶数定位值或3个定位值的倍数。到底是什么问题?代码无法编译!如果编译错误是您的问题,请在问题中显示编译错误并询问。您应该在printList中使用list.size而不是number.size。。。。因为list是一个对象,number是一个原语。对printList的调用不应该在main的底部,在while循环之后吗?它当前位于顶部…仍然有IndexOutOfBoundsException。并且list.add仍然错误地放置在此解决方案中,因为数字<0用于错误捕获,因为输入应该是正数,并且对于小于零的负数,该检查为真。更好!现在它应该得到我的+1=在printList中:如果使用java 8:numberList.stream.filteri->i%2==0&&i%3==0.forEachSystem.out::println更优雅:System.out.printlnlist.geti;//从列表中获取号码是
list.stream().filter(num -> num % 2 == 0)
.filter(num -> num % 3 == 0)
.forEach(System.out::println);