我在一次采访中被问到以下问题:如果你有一个整数堆栈,你如何在不使用 Collections.max 并且不迭代堆栈和比较元素的情况下找到堆栈的最大值。我用下面的代码回答了这个问题,因为我不知道除了使用任何 Collections API 或迭代堆栈并使用比较之外的另一种方法。有任何想法吗?
import java.util.Collections;
import java.util.Stack;
public class StackDemo {
public static void main(String[] args){
Stack lifo = new Stack();
lifo.push(new Integer(4));
lifo.push(new Integer(1));
lifo.push(new Integer(150));
lifo.push(new Integer(40));
lifo.push(new Integer(0));
lifo.push(new Integer(60));
lifo.push(new Integer(47));
lifo.push(new Integer(104));
if(!lifo.isEmpty()){
Object max = Collections.max(lifo);
System.out.println("max=" + max.toString());
}
}
}