1
私はこのコードをJavaでスタックの一般実装としています。 私は2000ジェネリックスタック内の要素をJavaで印刷できない
public class Stack_using_Array<E> {
int N;
int i; //starting index
private E arr[];
@SuppressWarnings("unchecked")
Stack_using_Array(int N){
arr=(E[]) new Object[N];
i=0;
}
@SuppressWarnings("unchecked")
void push(E object) throws FullStackException{
if(i==N-1){
throw new FullStackException("stack is full");
}
arr[i]=(E) new Object();
arr[i]=object;
i++;
}
@SuppressWarnings("unchecked")
E pop() throws FullStackException{
if(i==0){
throw new FullStackException("stack is empty");
}
arr[i]=(E) new Object();
E ob=arr[i];
arr[i]=null;
i--;
return ob;
}
public String toString(){
String s=""+arr[i];
return s;
}
public static void main(String []args){
Stack_using_Array<Integer> stack= new Stack_using_Array<Integer>();
try{
stack.push(67);
stack.push(90);
stack.push(78);
System.out.println(stack.pop());
System.out.println(stack.pop());
System.out.println(stack.pop());
} catch (FullStackException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
いくつかの固定サイズで配列の実装を使用していたが、私はそれらを印刷しようとすると、結果が
[email protected]
[email protected]
[email protected]
のように来て、それは多分オブジェクトのアドレスです。に、他の2行を
arr[i]=(E) new Object();
とも変更します。私は、
これで機能しました。ありがとう@ラファエルギレン –