Java如何实现正负数、奇偶数分组及对应数值显示
Java代码修改实现方案
核心问题说明
你现有代码仅对各分组做了数量计数,没有存储每个分组对应的具体数值,因此无法输出对应分组的元素。同时原有逻辑存在小问题:0被计入了正数统计,需要修正。
修改思路
- 替换原有int类型的计数变量为
ArrayList<Integer>集合,用于存储对应分组的所有数值,集合的size()方法可直接获取分组数量,无需单独计数 - 遍历输入数组时,将符合分组规则的数值添加到对应集合中
- 输出时直接打印集合即可展示分组内的所有具体数值
修改后的完整代码
import java.util.ArrayList; import java.util.Scanner; public class Count { public static void main (String[] args) { int i,a[] = new int[10]; // 定义各分组的存储集合 ArrayList<Integer> negativeList = new ArrayList<>(); ArrayList<Integer> positiveList = new ArrayList<>(); ArrayList<Integer> evenList = new ArrayList<>(); ArrayList<Integer> oddList = new ArrayList<>(); ArrayList<Integer> zeroList = new ArrayList<>(); Scanner input = new Scanner(System.in); System.out.println("请输入10个整数"); for(i=0;i<10;i++) { System.out.println("输入第"+(i+1)+"个数字:"); a[i] = input.nextInt(); } for(i=0;i<10;i++) { int num = a[i]; // 负数判断 if(num < 0) { negativeList.add(num); } // 正数判断 else if(num > 0) { positiveList.add(num); } // 零判断 else { zeroList.add(num); } // 奇偶判断 if(num % 2 == 0) { evenList.add(num); } else { oddList.add(num); } } // 打印结果 System.out.println("偶数总数量 = "+ evenList.size()); System.out.println("偶数列表 = "+ evenList); System.out.println("奇数总数量 = "+ oddList.size()); System.out.println("奇数列表 = "+ oddList); System.out.println("负数总数量 = "+ negativeList.size()); System.out.println("负数列表 = "+ negativeList); System.out.println("正数总数量 = "+ positiveList.size()); System.out.println("正数列表 = "+ positiveList); System.out.println("零的总数量 = "+ zeroList.size()); System.out.println("零列表 = "+ zeroList); input.close(); } }
测试输出效果
使用你提供的测试输入,运行后输出如下:
请输入10个整数 输入第1个数字: 0 输入第2个数字: 0 输入第3个数字: 2 输入第4个数字: -3 输入第5个数字: -4 输入第6个数字: 6 输入第7个数字: 9 输入第8个数字: 5 输入第9个数字: 0 输入第10个数字: 9 偶数总数量 = 6 偶数列表 = [0, 0, 2, -4, 6, 0] 奇数总数量 = 4 奇数列表 = [-3, 9, 5, 9] 负数总数量 = 2 负数列表 = [-3, -4] 正数总数量 = 5 正数列表 = [2, 6, 9, 5, 9] 零的总数量 = 3 零列表 = [0, 0, 0]
内容的提问来源于stack exchange,提问作者ANTON MIGUEL
相关产品推荐
相关产品推荐

