Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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_Stack - Fatal编程技术网

Java 从堆栈中获取最大整数值

Java 从堆栈中获取最大整数值,java,stack,Java,Stack,我是JAVA新手,正在努力学习。如果我的问题是基本的且格式不正确,请提前道歉 我在试着理解如何在堆栈中获得最大int值,好吗 private Stack<Integer> stack = new Stack<>(); stack.push(2456785434); stack.push(1); 您可以为此使用Collections类 Integer maxValue = Collections.max(stack) 您可以为此使用Collections类 Intege

我是JAVA新手,正在努力学习。如果我的问题是基本的且格式不正确,请提前道歉

我在试着理解如何在堆栈中获得最大int值,好吗

private Stack<Integer> stack = new Stack<>();
stack.push(2456785434);
stack.push(1);

您可以为此使用Collections类

Integer maxValue = Collections.max(stack)

您可以为此使用Collections类

Integer maxValue = Collections.max(stack)

首先,
2456785434
超出了
int
的范围,其值只能从
-2147483648
2147483647

您可以使用
API从堆栈中查找最大值

import java.util.Comparator;
import java.util.Optional;
import java.util.Stack;

public class Main {
    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>();
        stack.push(245678544);
        stack.push(1);

        Optional<Integer> max = stack.stream().max(Comparator.naturalOrder());
        System.out.println(max.get());
    }
}

首先,
2456785434
超出了
int
的范围,其值只能从
-2147483648
2147483647

您可以使用
API从堆栈中查找最大值

import java.util.Comparator;
import java.util.Optional;
import java.util.Stack;

public class Main {
    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>();
        stack.push(245678544);
        stack.push(1);

        Optional<Integer> max = stack.stream().max(Comparator.naturalOrder());
        System.out.println(max.get());
    }
}


我想保留这个堆栈。你好像在从一些非常古老的材料学习Java?
堆栈
类是遗留类,不再使用。我会使用
ArrayList
ArrayDeque
<代码>堆栈有效,如果您坚持,您可以使用它。您的搜索结果是什么?我相信类似的问题已经被问过很多次了,也被回答过很多次了。我想保留这个堆栈。你似乎在从一些非常古老的材料中学习Java?
堆栈
类是遗留类,不再使用。我会使用
ArrayList
ArrayDeque
<代码>堆栈有效,如果您坚持,您可以使用它。您的搜索结果是什么?我确信类似的问题已经被问过并回答过很多次了。很抱歉,不需要存储在变量中,即int。只想返回堆栈中的最大值。@AM_86-当您从某个方法返回值时,它必须被收集到某个变量中,这就是为什么您需要声明返回类型的原因。如果您已经知道您的数字可能超出
int
的范围,您可以根据需要选择更大的类型,如
long
(即
Stack
)或更大的
biginger
。如果有任何疑问/问题,请随时发表评论。@AM_86我不太清楚,抱歉。您是说要编写一个方法,该方法将
堆栈
作为参数,并返回
堆栈
中的最大值?如果是的话,
堆栈
会被允许为空吗?如果是的话,在这种情况下会发生什么?您是正确的,要从方法返回最大值,您不需要先将其存储在变量中。@OleV.V.-我没有说过必须显式声明一个变量来收集返回值。我说过它必须被收集到某个变量中(可能是JVM提供的隐式变量),这就是为什么需要声明返回类型。这不是一个正确的说法吗?@OleV.V.是的,你的假设是正确的。如果总和超过2147483647,则返回2147483647。我将修改我的问题并提供我的方法。我希望这有帮助,您可以解释一个可能的解决方案。很抱歉,不需要存储在变量中,即int。只想返回堆栈中的最大值。@AM_86-当您从某个方法返回值时,必须将其收集到某个变量中,这就是为什么您需要声明返回类型的原因。如果您已经知道您的数字可能超出
int
的范围,您可以根据需要选择更大的类型,如
long
(即
Stack
)或更大的
biginger
。如果有任何疑问/问题,请随时发表评论。@AM_86我不太清楚,抱歉。您是说要编写一个方法,该方法将
堆栈
作为参数,并返回
堆栈
中的最大值?如果是的话,
堆栈
会被允许为空吗?如果是的话,在这种情况下会发生什么?您是正确的,要从方法返回最大值,您不需要先将其存储在变量中。@OleV.V.-我没有说过必须显式声明一个变量来收集返回值。我说过它必须被收集到某个变量中(可能是JVM提供的隐式变量),这就是为什么需要声明返回类型。这不是一个正确的说法吗?@OleV.V.是的,你的假设是正确的。如果总和超过2147483647,则返回2147483647。我将修改我的问题并提供我的方法。我希望这有帮助,你可以解释一个可能的解决方案。约阿基姆·丹尼尔森——我同意你的看法。IMHO,把一个问题标记为重复问题是可以的,但真正的努力不应该被贬低。为什么要投否决票?只是猜测:因为有人认为我们不应该(再次)回答这样一个研究不足的问题?因为从另一个答案下的讨论中,我们怀疑OP是否真的总是想要整个堆栈中的max元素?如果这确实是我想要的,你的方式就是我喜欢的方式。@JoakimDanielson投票否决它的不是我。Joakim Danielson-我同意你的看法。IMHO,把一个问题标记为重复问题是可以的,但真正的努力不应该被贬低。为什么要投否决票?只是猜测:因为有人认为我们不应该(再次)回答这样一个研究不足的问题?因为从另一个答案下的讨论中,我们怀疑OP是否真的总是想要整个堆栈中的max元素?如果这确实是我想要的,你的方式就是我喜欢的方式。@JoakimDanielson投票否决它的不是我。