NullPointerException转换为对象迭代的向量

时间:2018-11-08 18:04:25

标签: java vector nullpointerexception

我对Java有点陌生,在我的一个类中,我们不得不从我们自己的接口中实现Vector库。但是,我们列表中的主题之一是实现一种方法,以找到该向量内的最大和最小数字...经过一些测试(阅读“ Entere night and a night”),结果是代码返回了NullPointerException。我需要一些帮助来解决它。

这是我到目前为止所取得的成就:

public class ListaLinearVetor implements IListaLinear {
    private Object[] elementos;
    private int fim;
    private int qtde;
    private int biggest;
    private int smallest;

    public int getBiggest() {
        return this.biggest;
    }

    public int getSmallest() {
        return this.smallest;
    }

    public ListaLinearVetor(int tamanho) {
        this.elementos = new Object[tamanho];
        this.fim = 0;
        this.qtde = 0;
    }

    @Override
    public int size() {
        return this.qtde;
    }

    @Override
    public boolean isEmpty() {
        return (this.qtde == 0);
    }

    private boolean isFull() {
        return this.fim >= this.elementos.length;
    }

    @Override
    public boolean add(Object obj) {
        if(this.isEmpty()) {
            this.biggest = 0;
            this.smallest = 0;
        }

        if ( !isFull() ) {
            this.elementos[this.fim] = obj;
            this.fim++;
            this.qtde++;
            this.findBiggestAndSmallest();
            return true;
        }
        return false;
    }

    @Override
    public boolean add(int pos, Object obj) {
        if ( !isFull() && pos < this.fim ) {
            for(int i=this.fim-1 ; i >= pos ; i--) {
                this.elementos[i+1] = this.elementos[i];
            }
            this.elementos[pos] = obj;
            this.fim++;
            this.qtde++;
            this.findBiggestAndSmallest();
            return true;
        }
        else if( !isFull() && pos >= this.fim) {
            return this.add(obj);
        }
        return false;
    }

    @Override
    public Object get(int pos) {
        if (pos < this.fim) {
            return this.elementos[pos];
        }

        return null;
    }

    @Override
    public Object remove(int pos) {
        Object removido;
        if (pos < this.fim) {
            removido = this.elementos[pos];
            for (int i=pos ; i <this.fim ; i++) {
                this.elementos[i] = this.elementos[i+1]; 
            }
            this.fim--;
            this.qtde--;
            return removido;
        }
        return null;
    }

    @Override
    public int indexOf(Object obj) {
        for (int i=0 ; i < this.fim ; i++) {
            if (this.elementos[i].equals(obj)) {
                return i;
            }
        }
        return -1;
    }

    @Override
    public boolean contains(Object obj) {
        return (this.indexOf(obj) >= 0);
    }

    @Override
    public Object[] toArray() {
        Object[] objs = new Object[this.fim];
        for (int i=0 ; i < this.fim ; i++) {
            objs[i] = this.elementos[i];
        }
        return objs;
    }

    public void findBiggestAndSmallest() {
        for (int i = 0; i < this.elementos.length; i++) {
            int num = (int) this.elementos[i];
            if (num > this.biggest) {
                this.biggest = num;
            }
            if (num < this.smallest) {
                this.smallest = num;
            }
        }
    }

} 

0 个答案:

没有答案