Java中如何将Integer列表的所有值合并为单个Integer类型变量
解决方案
方法1:字符串拼接转换实现
逻辑简单易理解,适合列表元素均为个位数的场景:
import java.util.ArrayList; import java.util.List; public class MergeIntegerList { public static void main(String[] args) { List<Integer> numeros = new ArrayList<>(); numeros.add(1); numeros.add(2); numeros.add(3); numeros.add(4); // 遍历拼接所有元素为字符串 StringBuilder sb = new StringBuilder(); for (Integer num : numeros) { sb.append(num); } // 转换为Integer类型,若拼接后数值超过Integer范围请改用Long或BigInteger Integer num = Integer.valueOf(sb.toString()); System.out.println(num); // 输出1234 } }
方法2:数学运算迭代实现
无需字符串转换,执行效率更高:
import java.util.ArrayList; import java.util.List; public class MergeIntegerList { public static void main(String[] args) { List<Integer> numeros = new ArrayList<>(); numeros.add(1); numeros.add(2); numeros.add(3); numeros.add(4); Integer num = 0; for (Integer n : numeros) { // 每次将当前结果乘10(十进制左移一位)再加上当前元素 num = num * 10 + n; } System.out.println(num); // 输出1234 } }
注意:两种方案都需要考虑数值溢出问题,Integer的最大值为2147483647,如果合并后的结果超过该值,会抛出溢出异常,该场景下建议使用
Long或BigInteger类型存储结果。
内容的提问来源于stack exchange,提问作者Coding 4fun
相关产品推荐
相关产品推荐

