Forum » Programiranje » [Java] Integer ali int za List
[Java] Integer ali int za List
Yacked2 ::
Pozdravljeni,
vseskozi sem pri pisanju uporabljal int x = 5 in tako naprej. Sedaj pa nujno rabim uporabit ArrayList, ki kot vrsto sprejme samo Integer. Z listi je veliko dela (3D graf), zato me zanima ali je sploh smiselno deklarirati x kot int, ali naj že takoj naredim Integer x = 5, da se izogrem pretvarjano iz int v Integer in obratno.
Kako je z Integer[] v primerjavi z int[] itd...
Hvala,
Yacked2
vseskozi sem pri pisanju uporabljal int x = 5 in tako naprej. Sedaj pa nujno rabim uporabit ArrayList, ki kot vrsto sprejme samo Integer. Z listi je veliko dela (3D graf), zato me zanima ali je sploh smiselno deklarirati x kot int, ali naj že takoj naredim Integer x = 5, da se izogrem pretvarjano iz int v Integer in obratno.
Kako je z Integer[] v primerjavi z int[] itd...
Hvala,
Yacked2
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
njyngs ::
Zakaj bi bilo z listi veliko dela? Uporabi Integer že v štartu in čim manj pretvarjaj. Pa pazi pri primerjavah oz. pogojih: uporabi nekInteger.intValue() == 1, namesto nekInteger == 1
Yacked2 ::
http://stackoverflow.com/questions/8660...
Collectioni v javi sprejmejo samo objekte.
To sem sam ugotovil ja :)
Zakaj bi bilo z listi veliko dela? Uporabi Integer že v štartu in čim manj pretvarjaj. Pa pazi pri primerjavah oz. pogojih: uporabi nekInteger.intValue() == 1, namesto nekInteger == 1
Ok, tak je plan, hvala!
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
Yacked2 ::
Ce si resen glede performancea moras itak int arraye uporabljat.
Velikost tabele je 10^9 x 10^9, od tega je označenih največ 10^5 polj. Se mi zdi, da je še vedno boljše listo uporabit.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
Sergio ::
Tako grem jaz, tako gre vsak, kdor čuti cilj v daljavi:
če usoda ustavi mu korak,
on se ji zoperstavi.
če usoda ustavi mu korak,
on se ji zoperstavi.
noraguta ::
Načeloma ti bounds checke če niso potrebni sedaj ven pomeče že kompajlr.
Pust' ot pobyedy k pobyedye vyedyot!
Yacked2 ::
Omejen glede knjižnic,
sedaj imam takole ArrayList Integer[] l samo problem je pri l.contains(element), contains mi ne deluje, se moram ročno s for zanko sprehoditi čez cel arrayList in primerjati Array.Equals vsakega posebej.
sedaj imam takole ArrayList Integer[] l samo problem je pri l.contains(element), contains mi ne deluje, se moram ročno s for zanko sprehoditi čez cel arrayList in primerjati Array.Equals vsakega posebej.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
Zgodovina sprememb…
- spremenil: Yacked2 ()
MrStein ::
Pa pazi pri primerjavah oz. pogojih: uporabi nekInteger.intValue() == 1, namesto nekInteger == 1
Ni treba, to se avtomatsko naredi (unboxing).
Problem je le, če ne paziš in testiraš enakost dveh Integer objektov.
Integer a; Integer b; if(a==33) // to primerja vrednost a z 33 (ekvivalent a.intValue()==33) if(b==-2) // to primerja vrednost b z -2 if(a==b) // to primerja ali gre za ista objekta, ne pa vrednosti
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Yacked2 ::
Torej če imam:
v katerega dam:
z:
ter nato pogledam če ta seznam vključuje drug element:
Tega z contain ne morem storiti, ker drugi ni enak element. Torej moram napisati funkcijo:
ki preveri za vsakega posebej. Ali je kakšna druga varijanta ?
ArrayList<Integer[]> seznam
v katerega dam:
Integer[] element = new Integer[]{5,6}
z:
seznam.add(element)
ter nato pogledam če ta seznam vključuje drug element:
Integer[] drugi = new Integer[]{5,6}
Tega z contain ne morem storiti, ker drugi ni enak element. Torej moram napisati funkcijo:
public static boolean check (ArrayList<Integer[]> seznam, Integer[] element)
ki preveri za vsakega posebej. Ali je kakšna druga varijanta ?
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
noraguta ::
Overridat morš equal metodo.
mislm implementirat. Ampak za tvoj primer vzem kar kompleksna stevila pa je mas primerov kolk ces po netu.
mislm implementirat. Ampak za tvoj primer vzem kar kompleksna stevila pa je mas primerov kolk ces po netu.
Pust' ot pobyedy k pobyedye vyedyot!
Zgodovina sprememb…
- spremenilo: noraguta ()
Spura ::
Ne mores overridat equals na arrayih.
Ce si len lahko naredis
Ce si len lahko naredis
List<List<Integer>> l = new ArrayList<List<Integer>>(); l.add(Arrays.asList(new Integer[]{5,6})); l.contains(Arrays.asList(new Integer[]{5,6})); // vrne true Sicer pa je int[] object in tako je lahko povsem normalno parameter za generike. List<int[]> lahko komot deklariras.
noraguta ::
Zakaj bi na arrayu to pocel to nadris na razredu tenzorja, v tem primeru dvojca. To nucaš tud za iteratorje po listu in kompajlerju omogoč da ven zmece preverjanje mej kjer je to mogoce.
Pust' ot pobyedy k pobyedye vyedyot!
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Java] array v voiduOddelek: Programiranje | 2302 (2001) | Spura |
» | [Android] Nov tip shranjevanja slikeOddelek: Programiranje | 2193 (1317) | urosz |
» | [Java] Podatkovni tipOddelek: Programiranje | 3831 (3483) | piki12 |
» | Sortiranje po večih atributih, javaOddelek: Programiranje | 1691 (1457) | marjan_h |
» | c# kako v prvi IEnumerable addati samo "Accaptable" tipe iz drugega IEnumerablaOddelek: Programiranje | 1121 (1045) | commissar |