gpt4 book ai didi

java - 使用带有 for 循环整数的堆栈 - 需要使用任意值

转载 作者:行者123 更新时间:2023-12-01 11:55:27 25 4
gpt4 key购买 nike

我有一个堆栈,它可以向前和向后读取。我需要能够输入任意值而不是使用整数(i)——我将如何做到这一点?我会使用数组吗?

package stacking;
import java.util.*;


/**
* @author Blood Fox
* 2/11/2015
* Stack Class - Learning how to use "Stack" Interfaces.
*
*/
public class StackMain {

//@param args
public static void main(String[] args) {
// Create a new, empty stack
Stack<Integer> stack = new Stack<Integer>();
Integer reversedStack = null;
Integer forwardsStack = null;

//add some items to it
System.out.println("This is forwards:");
for (int i = 0; i <= 0; i++)
{
//stack.push ( new Integer(i) );
forwardsStack = stack.push( new Integer(i));
System.out.print (i + " " );

}
// Last in first out means reverse order - reverse and place it in reversedStack
System.out.println("");
System.out.println("This is backwards:");
//do a loop for while empty --- remove
while ( !stack.empty() )
{
reversedStack = stack.pop();
System.out.print(reversedStack);
System.out.print (" " );
}

//compare both values of the forward and backward values to match and see if it's a palindrome.
if (forwardsStack == reversedStack)
{
System.out.println("");
System.out.println("The stack is a palindrome");
}

if (forwardsStack != reversedStack)
{
System.out.println("");
System.out.println("The stack is NOT a palindrome");
}
// Empty, let's lift off!
System.out.println("");
System.out.println("The stack is now empty");
}

}

我正在考虑使用一个整数startVal和一个数组,将forwardsStack正确地放置在原始数字堆栈上。我该如何去做呢?

最佳答案

这里有几点值得指出:

  1. 您可以使用Stack<Object>允许将任何类型的对象添加到堆栈中。这是因为所有类都是Object的子类。 .
  2. 一般使用 Object因为你的 Collection 类型是一个坏主意。它通常被误用为允许集合包含来自完全不同域的对象 instanceof和用于处理成员的强制转换。相反,通常最好声明 interface所有成员都将执行。
  3. 既然已经指出了这一点,那么在您的情况下,您唯一需要对成员做的就是比较它们是否相等。 equals方法是 Object 的一部分类,这样您就能够准确地使用Object做您需要做的事情。成员。这使得它成为声明 Stack<Object> 的(少数)情况之一。可能是合适的。
  4. 最后请注意,您正在将堆栈与 == 进行比较。这不会做你想做的事。它只是检查两个变量是否引用同一个对象,但事实并非如此。您应该使用forwardsStack.equals(reversedStack) 。这可以使用 equals 正确比较堆栈和每个成员的大小。 .

关于java - 使用带有 for 循环整数的堆栈 - 需要使用任意值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28485845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com