Jednokierunkowa lista wiązana (metoda usuńElement)

0

Witam.

Mam taką o to metodę:

public boolean usunElement(String wartosc){
		if(glowa.wezNastepny()==null){
			return false;
		}
		if(glowa.wezNastepny().wezWartosc().equals(wartosc)){
			glowa.ustawNatepny(glowa.wezNastepny().wezNastepny());
			rozmiarListy--;
			return true;
		}
		Element usuniety = new Element(null);
		while(usuniety!=null&usuniety.wezNastepny()!=null){
			if(usuniety.wezNastepny().wezWartosc().equals(wartosc)){
				usuniety.ustawNatepny(usuniety.wezNastepny().wezNastepny());
				rozmiarListy--;
				return true;
			}
			usuniety=usuniety.wezNastepny();
		}
		
		return false;
	}

Jest ona przepisana(przerobiona) ze strony kurs java. Tam jednakże lista była stworzona dla typu Objec, ja swoją tworzę dal Stringa i tu moje pytanie. Wywala mi błąd

java.lang.NullPointerException

w miejscu if(glowa.wezNastepny().wezWartosc().equals(wartosc)){

 więc się zastanawiam czy metoda equals działa dla Stringów i jak się z tym uporać ?
0

Działa dla stringów ale Ty masz po prostu gdzieś nulla w tym łańcuchu metod.

Dokładnie to weźWartość zwraca null

0
public class Element {
	
	String wartosc;
	Element nastepny;
	
	public Element(String wartosc){
		wartosc=null;
	}
	
	public Element(String wartosc, Element nastepny){
		this.wartosc=wartosc;
		this.nastepny=nastepny;
	}
	
	public String wezWartosc(){
		return wartosc;
	}
	
	public Element wezNastepny(){
		return nastepny;
	}
	
	public String ustawWartosc(String nowaWartosc){
		wartosc=nowaWartosc;
		return wartosc;
	}
	
	public Element ustawNatepny(Element nowyNastepny){
		nastepny=nowyNastepny;
		return nastepny;
	}
	
}

0
 
public Element(String wartosc){
                this.wartosc=wartosc;
}
0

Program działa prawidłowo, powinien rzucać wyjątek, gdyż wartosc w klasie Element próbujesz ustawić przez konstruktor. A w tym konstruktorze, nie przypisujesz wartości z argumentu, tylko dajesz null:

public Element(String wartosc) {
        wartosc=null;    // powinno być-> this.wartosc = wartosc;
}
0

czyli ten zapis

this(wartosc, null);

nie oznacza ze wartosc = null ?

0

Według tego:

        public Element(String wartosc, Element nastepny){
                this.wartosc=wartosc;
                this.nastepny=nastepny;
        }

to ten zapis spowoduje ze nastepny = null

1 użytkowników online, w tym zalogowanych: 0, gości: 1