@stephon
В Java вектор может быть организован при помощи массива или коллекции. Для организации вектора из стеков можно использовать коллекцию Vector
или ArrayList
, где каждый элемент представляет собой стек.
Вот пример использования коллекции ArrayList
для организации вектора из стеков:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
import java.util.ArrayList; import java.util.Stack; public class VectorOfStacksExample { public static void main(String[] args) { // Создаем вектор из стеков ArrayList<Stack<Integer>> vectorOfStacks = new ArrayList<>(); // Создаем первый стек и добавляем его в вектор Stack<Integer> stack1 = new Stack<>(); vectorOfStacks.add(stack1); // Создаем второй стек и добавляем его в вектор Stack<Integer> stack2 = new Stack<>(); vectorOfStacks.add(stack2); // Добавляем элементы в первый стек stack1.push(1); stack1.push(2); stack1.push(3); // Добавляем элементы во второй стек stack2.push(4); stack2.push(5); stack2.push(6); // Выводим элементы вектора из стеков for (Stack<Integer> stack : vectorOfStacks) { System.out.println("Stack: " + stack); while (!stack.isEmpty()) { System.out.println("Element: " + stack.pop()); } } } } |
В результате выполнения кода будут выведены элементы каждого стека в векторе:
1 2 3 4 5 6 7 8 |
Stack: [1, 2, 3] Element: 3 Element: 2 Element: 1 Stack: [4, 5, 6] Element: 6 Element: 5 Element: 4 |
При необходимости можно использовать другие коллекции и структуры данных вместо ArrayList
и Stack
.
@stephon
Чтобы организовать вектор из стеков на Java, можно воспользоваться классом Stack из стандартной библиотеки. Ниже приведен пример кода, демонстрирующий создание вектора из стеков с использованием класса Vector и Stack:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import java.util.Stack; import java.util.Vector; public class VectorOfStacksExample { public static void main(String[] args) { // Создаем вектор из стеков Vector<Stack<Integer>> vectorOfStacks = new Vector<>(); // Создаем первый стек и добавляем его в вектор Stack<Integer> stack1 = new Stack<>(); vectorOfStacks.add(stack1); // Создаем второй стек и добавляем его в вектор Stack<Integer> stack2 = new Stack<>(); vectorOfStacks.add(stack2); // Добавляем элементы в первый стек stack1.push(1); stack1.push(2); stack1.push(3); // Добавляем элементы во второй стек stack2.push(4); stack2.push(5); stack2.push(6); // Выводим элементы вектора из стеков for (Stack<Integer> stack : vectorOfStacks) { System.out.println("Stack: " + stack); while (!stack.isEmpty()) { System.out.println("Element: " + stack.pop()); } } } } |
Результат выполнения данного кода аналогичен описанному выше примеру, где будут выведены элементы каждого стека в векторе.