» »

[Java] Seznami

[Java] Seznami

messi ::

Hočem narediti seznam, kjer bom shranjeval različne stvari v seznamu, ko seznam skreram pa dejansko obstajajo 4 elementi ampak vrednosti null. Zakaj nul pa ne vem. Delam na seznamu brez slepega element.
Če kdo vidi težavo kje je in zakaj je nak na koncu 3tjega dodajanja enak seznamu 3 vrednosti null ne vem..
Nakup<String> nak=new Nakup<>(); 
nak.dodajVseznam("jabolko");
nak.dodajVseznam("hruška");
nak.dodajVseznam("opica");

public class Nakup<E>(
    protected class Sez<E> {

        E value;
        Sez<E> next;

        public Sez(E value, Sez<E> next) {
            this.value = value;
            this.next = next;
        }

        public Sez() {
            
        }
       
    };

    protected int size = 0;
    protected Sez<E> first;

    public boolean dodajVSeznam(E e) {

        if (first == null) {
            Sez<E> nov = new Sez<E>(e, null);
            first = nov;
            size++;
         return true;
        }           
         else if (!obstaja(e)) {
            Sez<E> nov = new Sez<E>(e, null);
            nov.next = first;
            first = nov;
            size++;
            
            return true;

        } else {
            return false;
        }


)

            @Override
    public boolean obstaja(Object o) {
      
        Clen<E> pom = first.next;
        while (pom != null && !pom.value.equals(o)) {
            pom = pom.next;
        }
        return pom != null;
    }

Spura ::

V tej kodi ni nicesar takega, da bi imel tri objekte Sez z null vrednostjo value. Je pa funkcija obstaja napacna (kaj je sploh class Clen?) pa tudi sicer je stvar nerodno napisana.

messi ::

Kaj pa je narobe obstaja narobe ?

Spura ::

obstaja zacne iskat pri drugem elementu v verigi.
Tudi sicer bi bilo lazje funkcijo definirat na classu Sez samem v rekurzivnem smislu. Public prazen konstruktor je odvec. Bolje bi bilo, ce bi funkcija obstaja imela argument tipa E ne pa Object.

    protected class Sez<E> {
 
        private E value;
        private Sez<E> next;
 
        public Sez(E value, Sez<E> next) {
            this.value = value;
            this.next = next;
        }

        public boolean obstaja(E value) {
            return this.value.equals(value) || (next == null ? false : next.obstaja(value));
        }
    }


Oziroma ne poznas operatorja ? :
return this.value.equals(value) || (next == null ? false : next.obstaja(value));

je

if (next == null) {
    return this.value.equals(value);
} else {
    return this.value.equals(value) || next.obstaja(value);
}

Zgodovina sprememb…

  • spremenil: Spura ()

messi ::

še kar narobe deluje oz ne deluje..:|:'(:|:'(:|:'(

Zgodovina sprememb…

  • spremenilo: messi ()


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

python-rabim pomoč

Oddelek: Programiranje
162655 (885) rnla1973
»

Naloga iz Putka - UPM

Oddelek: Programiranje
242053 (1389) NejcSSD
»

[C] kazalčni seznam

Oddelek: Programiranje
122855 (2669) MrBrdo
»

[java] funkcija ekvivalentna print_r v PHP

Oddelek: Programiranje
161579 (1342) sverde21
»

tomcat - problem z encodingom

Oddelek: Programiranje
72266 (2180) kopernik

Več podobnih tem