Java 11.6中Vector容器元素求和实现方法求助
解决Vector容器元素累加求和的问题
嘿,我来帮你搞定这个Vector求和的事儿!其实方法挺多的,我给你列几种适合Java 11环境的方案,从你已经在使用的Enumeration方式,到更简洁的现代写法都有:
1. 基于你现有的Enumeration遍历实现累加
既然你已经在用Enumeration遍历Vector,那可以直接在这个逻辑上修改,初始化一个求和变量,每次取出元素就累加上去:
// 建议定义Vector时指定泛型,更安全:Vector<Integer> vec_1 = new Vector<>(8); int sum = 0; Enumeration<Integer> enu = vec_1.elements(); // 指定泛型Integer避免类型转换问题 while (enu.hasMoreElements()) { // 每次取出一个元素,加到sum里 sum += enu.nextElement(); } // 最后打印结果 System.out.println("Sum: " + sum);
如果你的Vector没有指定泛型(存储的是Object类型),需要做类型强转:
int sum = 0; Enumeration enu = vec_1.elements(); while (enu.hasMoreElements()) { sum += (int) enu.nextElement(); } System.out.println("Sum: " + sum);
2. 用增强for循环(foreach)简化遍历
Vector实现了Iterable接口,所以可以直接用更易读的增强for循环来遍历累加:
int sum = 0; // 针对泛型Vector<Integer>的情况,直接用Integer接收元素 for (Integer num : vec_1) { sum += num; } System.out.println("Sum: " + sum);
这种写法比Enumeration更简洁,代码可读性也更高,日常开发里用得更多。
3. Java 8+ 流API一行搞定求和
因为你用的是Java 11,完全可以利用Stream API来实现更简洁的求和,一行代码就能完成:
// 针对Vector<Integer>的情况 int sum = vec_1.stream().mapToInt(Integer::intValue).sum(); // 或者更简化的自动拆箱写法 // int sum = vec_1.stream().mapToInt(i -> i).sum(); System.out.println("Sum: " + sum);
Stream API是Java 8以后的特性,它把集合操作变得更抽象和简洁,特别适合处理这种批量元素的计算场景。
另外提醒一下,最好在定义Vector的时候指定泛型(比如Vector<Integer>),这样不仅能避免类型转换的麻烦,还能提高代码的安全性,减少运行时错误~
内容的提问来源于stack exchange,提问作者galo2324
相关产品推荐
相关产品推荐

