スタックからすべての緑色のアイテムを削除する必要があるという宿題の問題があります。
これが私のコードです:
import java.util.*;
import java.io.*;
public class Pex
{
public static void main(String[] args)
{
Stack stack1 = new Stack();
addPez(stack1);
removeGreen(stack1);
System.out.println(printStack(stack2));
}
public void addPez(Stack stack1)
{
stack1.push("yellow");
stack1.push("red");
stack1.push("green");
stack1.push("green");
stack1.push("yellow");
stack1.push("yellow");
stack1.push("red");
stack1.push("green");
}
public static void removeGreen(Stack stack1)
{
Stack temp = new Stack();
while (!stack1.isEmpty()){
String check = (String)(stack1.pop());
if(check.equals("green")){
stack1.pop();}
else{
temp.push(check);}
}
Stack stack2 = new Stack();
while (!temp.isEmpty()){
String tmp = stack1.pop();
stack2.push(tmp);}
}
public static void printStack(Stack stack2)
{
Stack xerox = stack2.clone();
while (!xerox.isEmpty()){
System.out.println(xerox.pop());}
}
}
誰かが私を正しい方向に向けることができますか? 私はほとんどそこにいると思います。
また、なぜエラーが発生するのかを理解する必要があります。
エラーは次のとおりです。
Pex.java:10: non-static method addPez(Stack) cannot be referenced from a static context
addPez(stack1);
^
Pex.java:12: cannot find symbol
symbol : variable stack2
location: class Pex
System.out.println(printStack(stack2));
^
Pex.java:39: incompatible types
found : java.lang.Object
required: java.lang.String
String tmp = stack1.pop();
^
Pex.java:45: incompatible types
found : java.lang.Object
required: Stack
Stack xerox = stack2.clone();
^
./Stack.java:69: cannot find symbol
symbol : variable stack1
location: class Stack
stack2 = (Stack)(stack1.clone());
^
5 errors