Как определить стек char?

Как определить стек char в java? Например, для создания String-стека я могу использовать такую ​​конструкцию:

Stack <String> stack= new Stack <String> ();

Но когда я пытаюсь поместить char вместо String, я получил ошибку:

Syntax error on token "char", Dimensions expected after this token

Ответы

Ответ 1

Использование коллекции char довольно неэффективно. (но он работает). Вы можете обернуть StringBuilder, который также является изменчивой коллекцией char.

class CharStack {
    final StringBuilder sb = new StringBuilder();

    public void push(char ch) {
        sb.append(ch);
    }

    public char pop() {
        int last = sb.length() -1;
        char ch= sb.charAt(last);
        sb.setLength(last);
        return ch;
    }

    public int size() {
        return sb.length();
    }
}

Ответ 2

Примитивные типы, такие как char, не могут использоваться в качестве параметров типа в Java. Вам нужно использовать тип оболочки:

Stack<Character> stack = new Stack<Character>();