如何从myType []中删除元素?

时间:2014-06-19 19:18:20

标签: java

我的代码出了问题。我必须使用自定义类型数组(Colis []),我自己创建方法从中删除元素:

public Colis[] casiers = new Colis[MAXVALUE];
...
public void removeColis(short num, int mode) {
    switch (mode) {
        case NUMCASIER:
            casiers[num]=null;
            break;
        case NUMCOLIS:
            for (int i=0; i<casiers.length; i++) {
                if (casiers[i].noColis==num){
                    casiers[i]=null;
                }
            }
        default :
            break;
    }
}

当我这样做casiers[index]=null;时似乎没有做好事 因为我抓到了一个java.lang.NullPointerException。

我的问题是如何删除casiers [index]中包含的元素?

THKS

2 个答案:

答案 0 :(得分:1)

casier条目设置为null时,使用

是明智的
  for (int i=0; i<casiers.length; i++) {
      if( casiers[i] == null ) continue;
      if (casiers[i].noColis==num){
            casiers[i]=null;
      }
   }

答案 1 :(得分:0)

在下面的代码中,您尝试访问casiers [i]而不检查是否存在任何实际存在。

        for (int i=0; i<casiers.length; i++) {
            if (casiers[i].noColis==num){
                casiers[i]=null;
            }
        }

添加一项检查以查看casiers [i]是否为空

       for (int i=0; i<casiers.length; i++) {
            if(casiers[i] != null && casiers[i].noColis != null){
                if (casiers[i].noColis==num){
                    casiers[i]=null;
                }
            }
        }

这将确保casiers [i]不为null,并且在您尝试在代码中访问它们之前,casiers [i] .noColis不为null。