Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从列表中创建长数字?_Java - Fatal编程技术网

Java 如何从列表中创建长数字?

Java 如何从列表中创建长数字?,java,Java,如何从列表中创建一个长数字 发件人: 谢谢将您的列表转换为流,您可以使用Collector.joining将其映射到流并进行收集。最后,使用longpasselong将收集的连接字符串解析为long 输出: tl;dr仅当您的值在0到9之间时,以下方法才会对您有所帮助。有关各种值,请参见Arvind的答案 使用流缩减,您可以获得与@Dmitry Bychenko在评论中提出的相同的示例 List ints=Arrays.asList1,2,3,4,5,6,7,8,9; 长结果=ints.stre

如何从列表中创建一个长数字

发件人:

谢谢

将您的列表转换为流,您可以使用Collector.joining将其映射到流并进行收集。最后,使用longpasselong将收集的连接字符串解析为long

输出:


tl;dr仅当您的值在0到9之间时,以下方法才会对您有所帮助。有关各种值,请参见Arvind的答案

使用流缩减,您可以获得与@Dmitry Bychenko在评论中提出的相同的示例

List ints=Arrays.asList1,2,3,4,5,6,7,8,9; 长结果=ints.stream .mapToLongx->x .reduce0,prev,current->prev*10+current; System.out.printlnresult=+result;//减少=123456789 但是,如果列表包含的元素太多,则会溢出Long.MAX_值,因此我更愿意根据BigInteger给出这个答案

List ints=Arrays.asList1、2、3、4、5、6、7、8、9、1、2、3、4、5、6、7、8、9、1、2、3、4、5、6、7、8、9、1、2、3、4、6、7、7、9; BigInteger结果=ints.stream .mapBigInteger::valueOf .reduceBigInteger.ZERO,prev,current->prev.multiplyBigInteger.TEN.addcurrent; System.out.printlnresult=+result;//减少=12345678923456789123456781234567812345678123456789 长结果=0;对于整数d:整数结果=结果*10+d;
List<Integer> ints = Arrays.asList(1,2,3,4,5,6,7,8,9)
long = 1234567489
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        long x = Long.parseLong(
                        List.of(1, 2, 3, 4, 5, 6, 7, 8, 9)
                        .stream()
                        .map(String::valueOf)
                        .collect(Collectors.joining())
                    );
        
        System.out.println(x);
    }
}
123456789