在Javax中从数组中删除第一项

在Javax中从数组中删除第一项,java,arrays,Java,Arrays,获取一个赋值问题,该问题要求从数组中返回第一项,然后将其删除。如果数组为空,我应该返回null。这是我的密码: public String pop(){ if(arrayLength == 0){ return null; }else{ String[] temp = new String[100]; String firstItem = StringStack[0]; for(int i = 1; i<Str

获取一个赋值问题,该问题要求从数组中返回第一项,然后将其删除。如果数组为空,我应该返回null。这是我的密码:

public String pop(){
    if(arrayLength == 0){
        return null;
    }else{
        String[] temp = new String[100];
        String firstItem = StringStack[0];
        for(int i = 1; i<StringStack.length; i++){
            temp[i] = StringStack[i];
        }
        StringStack = temp;
        return firstItem;
    }
}

我想不出我做错了什么。这个问题的另一部分是我不能使用任何集合或System.arraycopy,所以我必须使用for循环和其他基本运算符来解决这个问题。它还必须是一个数组,所以我不能使用数组列表或其他数据结构。

这是一个有两个固定问题的版本:

public String pop() {
    if(StringStack == null || StringStack.length == 0)
        return null;

    String firstItem = StringStack[0];

    String[] temp = new String[StringStack.length-1]; // allocate proper size
    for(int i = 1; i<StringStack.length; i++){
        temp[i-1] = StringStack[i]; // i-1 for temp array
    }
    StringStack = temp;

    return firstItem;
}
公共字符串pop(){
if(StringStack==null | | StringStack.length==0)
返回null;
String firstItem=StringStack[0];
String[]temp=新字符串[StringStack.length-1];//分配适当的大小

对于(int i=1;i
arrayLength变量是通过此方法设置的,并且工作正常
我在代码中看不到这一点,posted方法不会更新任何实例变量我想,用
StringStack.length
字符串[]临时=新字符串[100];
-->
字符串[]临时=新字符串[StringStack.length-1];
然后
getLength()
可以返回
StringStack.length
public String pop() {
    if(StringStack == null || StringStack.length == 0)
        return null;

    String firstItem = StringStack[0];

    String[] temp = new String[StringStack.length-1]; // allocate proper size
    for(int i = 1; i<StringStack.length; i++){
        temp[i-1] = StringStack[i]; // i-1 for temp array
    }
    StringStack = temp;

    return firstItem;
}