空堆栈是否自动具有空值?
Do empty stacks automatically have a null value?
我对 java 很陌生。所以我有一些代码应该将文件添加到堆栈并将堆栈内容与现有引用进行比较。这是应该创建堆栈的 class:
public class ArrayStack<T> implements ArrayStackADT<T> {
private T[] stack;
private int top;
// constructor, passes default capacity
public ArrayStack() {
top = -1;
stack = (T[]) new Object[14];
}
// constructor, initializes capacity to stack and top
public ArrayStack(int initialCapacity) {
top = -1;
stack = (T[])new Object[initialCapacity];
}
}
这里是调用堆栈的代码:
public static void main(String[] args){
StartSearch path = new StartSearch(args[0]);
int distance = Integer.parseInt(args[1]);
ArrayStack stack = new ArrayStack(); // creates empty stack
MapCell cell = path.targetMap.getStart(); // gets starting cell
stack.push(cell); // pushes starting cell to stack
}
不确定我是否显示了足够的代码,如果没有,请告诉我。我有一些 push 和 pop 方法来插入和删除堆栈项,并且对于每个 push/pop 他们会打印“push”+ 值:
if (dataItem instanceof MapCell) {
sequence += "push" + ((MapCell)dataItem).getIdentifier();
}
else {
sequence += "push" + dataItem.toString();
}
虽然出于某种原因,当我稍后去打印序列时,它输出这个:
nullpush0push2push3
而不是我需要它输出的内容:
push0push2push3
空堆栈是否自动具有空值或其他东西?如何去除开头的空值?
它与你的堆栈没有任何关系class。这就是您初始化 String
变量的方式。或者也许忘了初始化它?演示:
String sequence = null;
sequence += "push1";
System.out.println(sequence);
输出为:
nullpush1
而是将 sequence
初始化为空字符串:
String sequence = "";
push1
或使用 StringBuffer
或 StringBuilder
:
StringBuilder sequence = new StringBuilder();
sequence.append("push1");
System.out.println(sequence);
输出相同:
push1
我对 java 很陌生。所以我有一些代码应该将文件添加到堆栈并将堆栈内容与现有引用进行比较。这是应该创建堆栈的 class:
public class ArrayStack<T> implements ArrayStackADT<T> {
private T[] stack;
private int top;
// constructor, passes default capacity
public ArrayStack() {
top = -1;
stack = (T[]) new Object[14];
}
// constructor, initializes capacity to stack and top
public ArrayStack(int initialCapacity) {
top = -1;
stack = (T[])new Object[initialCapacity];
}
}
这里是调用堆栈的代码:
public static void main(String[] args){
StartSearch path = new StartSearch(args[0]);
int distance = Integer.parseInt(args[1]);
ArrayStack stack = new ArrayStack(); // creates empty stack
MapCell cell = path.targetMap.getStart(); // gets starting cell
stack.push(cell); // pushes starting cell to stack
}
不确定我是否显示了足够的代码,如果没有,请告诉我。我有一些 push 和 pop 方法来插入和删除堆栈项,并且对于每个 push/pop 他们会打印“push”+ 值:
if (dataItem instanceof MapCell) {
sequence += "push" + ((MapCell)dataItem).getIdentifier();
}
else {
sequence += "push" + dataItem.toString();
}
虽然出于某种原因,当我稍后去打印序列时,它输出这个:
nullpush0push2push3
而不是我需要它输出的内容:
push0push2push3
空堆栈是否自动具有空值或其他东西?如何去除开头的空值?
它与你的堆栈没有任何关系class。这就是您初始化 String
变量的方式。或者也许忘了初始化它?演示:
String sequence = null;
sequence += "push1";
System.out.println(sequence);
输出为:
nullpush1
而是将 sequence
初始化为空字符串:
String sequence = "";
push1
或使用 StringBuffer
或 StringBuilder
:
StringBuilder sequence = new StringBuilder();
sequence.append("push1");
System.out.println(sequence);
输出相同:
push1