Установить Iterator & NullPointerException - PullRequest
0 голосов
/ 27 февраля 2011

Привет! У меня есть проблема, которую я не могу найти.

Я получаю исключение NullPointerException в sets.put( nodes_iter.next(), null ); в конце моего кода класса DisjSet.

Я только вчера начал делать наборы ключей из hashMaps и т.п., поэтому я думаю, что может быть что-то, чего я не знаю.

Благодарен за каждого awnser-

Вот код:

Я создаю новый DisjSet с:

DisjSet<T> ds = new DisjSet<T>( theGraph.keySet() );

Вот граф, я делаю набор ключей:

private Map< T, HashSet<Edge> > theGraph = new HashMap< T, HashSet<Edge> >( );

Вот соответствующие части класса DisjSet:

import java.util.*;

public class DisjSet<K extends Comparable<? super K>>
{
      //HashMap containing 1. K itself, 2. Ks parent. K no.2 is null if K has no parent 
    private HashMap<K,K> sets;

public DisjSet(Set<K> s)
{
    if(s.isEmpty())
        throw new IllegalStateException("Empty DisjSet argument");

    Iterator<K> nodes_iter = s.iterator();

    while(nodes_iter.hasNext())
        sets.put( nodes_iter.next(), null );
}
( ... )
}

Ответы [ 2 ]

1 голос
/ 27 февраля 2011

Так как есть проверка node_iter.hasNext (), это оставляет единственную возможность для множеств быть нулевыми.

1 голос
/ 27 февраля 2011

Вы никогда не инициализируете "наборы", поэтому вы получаете исключение NullPointerException.

Кстати: это ошибка, равная той, которая была у вас ранее в этот день .Не стыдно делать такие ошибки, но вы должны попытаться извлечь уроки из ответов.

...