2017-03-16 63 views
-6
public class DSAStack 
{ 
    private int count; 
    private double[] stack; 
    public static final int default_capacity = 100; 

    public DSAStack() 
    { 
     this.stack = stack[default_capacity]; 
     this.count = 0; 
    } 

    public DSAStack(int capacity) 
    { 
     this.stack = stack[capacity]; 
     this.count = 0; 
    } 
} 

Eclipse的建议速战速决,使没有变化,只是强调了double[],可能是一个非常愚蠢的错误,但我无法弄清楚。类型不匹配:不能从双转换翻倍[]

+4

'新的堆栈[default_capacity]' – Arkadiy

+0

我建议你改变了第一个构造函数代码为'这(default_capacity);'使用'DSAStack(INT)' ,这将不太重现。其余的,请参阅答案来理解问题。 – AxelH

+0

stack [capacity]返回最后一个元素后面的元素。 – efekctive

回答

1

我想你的意思

this.stack = new double[default_capacity]; 

this.stack = new double[capacity]; 
+0

是的,我发现它后,我觉得很愚蠢。 Thx – CitrisLemon

+0

没问题,有时候会发生。 – aUserHimself

+0

请删除该问题以避免为提问禁止 – Arkadiy

0

this.stack = stack[default_capacity];您尝试在索引中插入值stack等于default_capacity,这是double。为此错误

类型不匹配:不能从双转换翻倍[]

你需要使用new

this.stack = new double[default_capacity]; 
0

this.stack =堆叠[default_capacity]

初始化 stack

堆栈是double []。 堆栈[default_capacity]是双精度。

+0

您应该尝试使用代码标签来设置您的答案的格式。如果英文对你来说不容易,至少代码将是可读的;) – AxelH

-1

Double是类类型。 nextDouble返回原始类型double。将A更改为双列

double [] A = new double [Size];

+0

这没有意义,OP使用原始类型数组'double []'而不是'Double []'。所以这根本不是一个班级的数组。这个'nextDouble'返回一个原始类型是什么?这不清楚。 – AxelH

0

你应该把它与新的写:

this.stack = new stack[default_capacity]; 
相关问题