首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何定义char堆栈?

如何定义char堆栈?
EN

Stack Overflow用户
提问于 2012-01-06 00:57:34
回答 4查看 60.3K关注 0票数 18

如何在java中定义char堆栈?例如,要创建一个字符串堆栈,我可以使用这样的结构:

代码语言:javascript
复制
Stack <String> stack= new Stack <String> ();

但是当我尝试使用char而不是String时,我得到了一个错误:

代码语言:javascript
复制
Syntax error on token "char", Dimensions expected after this token
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-06 01:03:15

使用char集合的效率非常低。(但它可以工作)您可以包装一个StringBuilder,它也是一个可变的char集合。

代码语言:javascript
复制
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();
    }
}
票数 7
EN

Stack Overflow用户

发布于 2012-01-06 00:58:54

诸如char之类的基本类型不能用作Java语言中的类型参数。您需要使用包装器类型:

代码语言:javascript
复制
Stack<Character> stack = new Stack<Character>();
票数 68
EN

Stack Overflow用户

发布于 2012-01-06 00:59:28

char是Java语言which cannot be used in generics中的原始数据类型之一。但是,您可以替换包装器java.lang.Character,如下所示:

代码语言:javascript
复制
Stack<Character> stack = new Stack<Character>();

您可以将Character赋值给char,反之亦然;Java将为您autobox该值。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8746428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档