[解決済み] javaでスタックを反転させる
2022-02-19 13:32:30
質問内容
public static void reverse(Stack arr){
Queue<Integer> arrCopy=new LinkedList<Integer>();
while(!arr.empty()){
arrCopy.add((int)arr.pop());
};
System.out.print("{ ");
while(!arrCopy.isEmpty()){
System.out.print((int)arrCopy.remove() + ", ");
}
System.out.print("}");
}
キューを作成し、pop を使ってスタックから整数を取り出して返すたびに、それをキューに追加していく新しいメソッドを書きました。
while(!arrCopy.isEmpty())
キャスティングに問題があるのか、それともキューに要素を追加する方法に問題があるのでしょうか?
ありがとうございます。
を編集します。 ここに私のメイン関数のコード(私のコードの残りの部分です)があります。
public static void main(String[] args) {
Random rand = new Random();
Stack<Integer> a=new Stack<Integer>();
for (int i=0; i<10; i++){
a.push(rand.nextInt(50));
}
System.out.print("{ ");
while(!a.empty()){
System.out.print((int)a.pop() + ", ");
}
System.out.print("}");
reverse(a);
}
ソリューション : うまくいきました!ありがとうございます!問題は、反転する前にプリントするために、スタックからすべての要素を返す(まだ取り除く)ためにpopを使っていたことで、結果的にスタックが空になっていました。
public static Queue reverse(Stack arr){
Queue<Integer> arrCopy=new LinkedList<Integer>();
while(!arr.empty()){
arrCopy.add((int)arr.pop());
}
return arrCopy;
}
public static void main(String[] args) {
Random rand = new Random();
Stack<Integer> a=new Stack<Integer>();
for (int i=0; i<10; i++){
a.push(rand.nextInt(50));
}
System.out.println("List:");
System.out.println(a);
System.out.println("Reversed List:");
System.out.println(reverse(a));
}
解決方法は?
これです。
while(!a.empty()){
System.out.print((int)a.pop() + ", ");
}
System.out.print("}");
reverse(a);
あなたは
スタックを空にする
を呼び出す前に
reverse
. までスタックから要素をポップアップし続けると
a.empty()
が真を返した場合、スタックを空にしたことになり、空のスタックを
reverse
メソッドを使用します。
使えばいいじゃん。
System.out.println(a);
reverse(a);
印刷するために、スタックからすべての要素をポップアップする必要はありません。
関連
-
[解決済み】エラー:配列または java.lang.Iterable のインスタンスに対してのみ反復処理を行うことができます。
-
[解決済み】破損したjarファイル
-
[解決済み] Hide Utility Class Constructor : ユーティリティクラスはパブリックまたはデフォルトコンストラクタを持つべきではありません。
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaでNullPointerExceptionを回避する方法
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Android Studio クラス org.codehaus.groovy.runtime.InvokerHelper を初期化できませんでした。
-
[解決済み】"実引数リストと形式引数リストの長さが異なる"
-
[解決済み】エラー「No enclosing instance of type Foo is accessible」の原因と修正方法について教えてください。
-
[解決済み】Android Studioでタスク :app:compileDebugJavaWithJavac の実行に失敗しました。
-
[解決済み】Javaで無限大を実装する方法とは?
-
[解決済み] メソッドがそのスーパークラスのメソッドをオーバーライドしない
-
[解決済み】Hibernateの例外「failed to lazily initialize a collection of role」の解決方法
-
[解決済み】Javaを包含するクラスではないのか?
-
[解決済み】ソースルート外のJavaファイル intelliJ
-
[解決済み] Hide Utility Class Constructor : ユーティリティクラスはパブリックまたはデフォルトコンストラクタを持つべきではありません。