You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 20:12:29