如何在java中定义char堆栈?例如,要创建一个String堆栈,我可以使用这样的结构:
Stack <String> stack= new Stack <String> ();
Run Code Online (Sandbox Code Playgroud)
但是当我尝试将char放入String时我得到了一个错误:
Syntax error on token "char", Dimensions expected after this token
Run Code Online (Sandbox Code Playgroud)
Tud*_*dor 57
原始类型如char
不能在Java中用作类型参数.您需要使用包装类型:
Stack<Character> stack = new Stack<Character>();
Run Code Online (Sandbox Code Playgroud)
phi*_*hag 12
char
是Java中的原始数据类型之一,不能用于泛型.但是,您可以替换包装器java.lang.Character,如下所示:
Stack<Character> stack = new Stack<Character>();
Run Code Online (Sandbox Code Playgroud)
您可以将Character
一个char
或周围的其他方式; Java将为您自动提供价值.
使用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();
}
}
Run Code Online (Sandbox Code Playgroud)