-
スタックをArrayListとして実装する方法:
import java.util.ArrayList; import java.util.Stack; public class StackExample { public static void main(String[] args) { Stack<Integer> stack = new Stack<>(); stack.push(10); stack.push(20); stack.push(30); stack.push(40); stack.push(50); ArrayList<Integer> tempList = new ArrayList<>(stack); int index = 2; // 取得したい要素のインデックス if (index >= 0 && index < tempList.size()) { int element = tempList.get(tempList.size() - 1 - index); System.out.println("要素: " + element); } else { System.out.println("インデックスが無効です。"); } } }
-
スタックをLinkedListとして実装する方法:
import java.util.LinkedList; import java.util.Stack; public class StackExample { public static void main(String[] args) { Stack<Integer> stack = new Stack<>(); stack.push(10); stack.push(20); stack.push(30); stack.push(40); stack.push(50); LinkedList<Integer> tempList = new LinkedList<>(stack); int index = 2; // 取得したい要素のインデックス if (index >= 0 && index < tempList.size()) { int element = tempList.get(tempList.size() - 1 - index); System.out.println("要素: " + element); } else { System.out.println("インデックスが無効です。"); } } }
-
スタックを配列として実装する方法:
import java.util.Arrays; import java.util.Stack; public class StackExample { public static void main(String[] args) { Stack<Integer> stack = new Stack<>(); stack.push(10); stack.push(20); stack.push(30); stack.push(40); stack.push(50); Integer[] array = stack.toArray(new Integer[0]); int index = 2; // 取得したい要素のインデックス if (index >= 0 && index < array.length) { int element = array[array.length - 1 - index]; System.out.println("要素: " + element); } else { System.out.println("インデックスが無効です。"); } } }
これらの例では、スタックを異なるデータ構造として実装し、要素を取得するために中間的なリストや配列を使用しています。インデックスが有効な範囲内にあるかどうかを確認し、要素を取得しています。スタックの要素を直接アクセスする方法は提供されていないため、一時的なデータ構造を使用する必要があります。
これらのコード例を参考にして、自身の要件に合わせた方法を選択してください。また、スタックの実装方法や要素のデータ型に応じて、適切なコードの修正が必要な場合があることに留意してください。