массив LinkedLists всегда дает исключение nullPointerException - PullRequest
0 голосов
/ 08 апреля 2020

Я создаю свою собственную HashSet реализацию для практики. Я получаю NullPointerException каждый раз, когда добавляю что-либо в свой массив связанных списков. Я даже пытался инициировать LinkedList внутри каждого индекса массива со значением [только для отладки], и я все еще получаю ошибку исключения. Любые предложения с благодарностью!

public class MyHashSet {

    protected int size;
    private int currentSize;
    protected LinkedList<Integer>[] buckets; //array of linked list

    private double loadFactor = 0.75;

    /** Initialize your data structure here. */
    @SuppressWarnings("unchecked")
    public MyHashSet() {

    buckets = new LinkedList[4];
        for(int i = 0; i< size; i++){
            LinkedList<Integer>  ll = new LinkedList<Integer>();
            ll.add(0);  //I will remove this but  just to see what might happen - but still get error
            buckets[i] = ll;

        }
        size = buckets.length;
        this.buckets = buckets;
        System.out.println(buckets[1].isEmpty());  // I GET ERROR HERE NULLPOINTEREXCEPTION
    }


//..........I've removed most of my other methods just for the questions

    public static void main(String[] args) {
        MyHashSet hash = new MyHashSet();
        //hash.add(5);
    }
}

Спасибо

1 Ответ

1 голос
/ 08 апреля 2020

Ваша переменная размера не инициализируется до l oop. Значение по умолчанию равно нулю, поэтому ведра [1] не будут инициализированы. Попробуйте поставить

size = buckets.length;

Перед тем как войти в l oop

...