Hirdetés
- Luck Dragon: Asszociációs játék. :)
- MasterDeeJay: Harc a DDR5 árak ellen
- urandom0: Száműztem az AI-t az életemből
- hcl: Poco F2 Pro facepalm
- CaNNa3IS: Kis előkarácsonyi muzsika csak nektek
- sziku69: Szólánc.
- Gurulunk, WAZE?!
- sziku69: Fűzzük össze a szavakat :)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél
Új hozzászólás Aktív témák
-
n00b
újonc
Azt elfelejtettem mondani, hogy nem árt, ha ilyen dolgokkal is tisztában vagy, mint Linux, Git, Maven/Gradle. Ezeket általában napi szinten kell használni.
-
n00b
újonc
válasz
Csaby25
#11551
üzenetére
Mi a célod a Java-val?
Ha dolgozni akarsz a területen, akkor ne csak sima programozási feladatokat gyakorolj. Az csak a jéghegy csúcsa. Írj vállalati környezetben használható dolgokat, pl. webservice-t, javas SQL lekérést stb. Ha már jól mennek az alapok, megtanulhatsz valamilyen frameworköt is, pl. Springet. Nekem pl. az egyik gyengém, hogy csak a core java-t ismerem. (Igaz már nem vagyok olyan n00b, mint 5 éve, amikor ezt a profilt csináltam.)
Java-s álláskeresésben már komoly tapasztalatom van. Legutóbb 8 nap alatt találtam állást. Ha gondolod, írhatsz privátban.
-
Drizzt
nagyúr
válasz
bambano
#11597
üzenetére
Pedig tok egyszeru a dolog.
Van kiindulaskor valamennyi(n) darab bucket. A bucketek gyakorlatilag tombok. Tehat van egy n elemu tombod. Minden bucketben van egy linkelt lista, vagy valamilyen annak megfelelo struktura.
A hash fuggvenyen nem modositanak semmit, mivel azt Javaban a user-nek szokas megadnia(oke, altalaban a Lombok irja meg helyette, meg lehet hasznalni a default implementaciot is, de az lehet lassu bizonyos esetekben).Kereses kulcs alapjan:
- Meghivod a kulcsra a .hashCode metodust. Igy kapod az x erteket.
- Kiszamolod , hogy x mod n = z alapjan mi a z.
- A z. bucketet kikeresed(ez egy lepesben megvan).
- A z. bucket osszes elemen vegigiteralsz, s megnezed, hogy a kulcs equals-e az eppen iteralas alatt levo elemmel. Ha igen, akkor az ott szinten eltarolt erteket visszaadod.Mikor lesz ez az egesz lassu?
- Ha a hashCode ugy van megirva, hogy minden kulcs ugyanabba a bucketbe keruljon, vagy legalabbis a bucketek egy kis reszebe. Ilyenkor abban a bucketben egy hosszu lista lesz, ami miatt nem o(1) lesz a lookup, hanem kozeliti az o(n)-et.
Ugyanez akkor is igaz lenne, ha a map-ben levo elemek szama joval nagyobb lenne, mint n. Mit csinal ez ellen a Java? Figyel egy toltottsegi szintet. Ha a toltottsegi szinte egy hataron tul van, akkor fogja, s csinal 2*n uj bucketet, s a meglevo elemeket belerakja, a regi n bucketet meg eldobja.Ebbe a pogramozo is bele tud szolni, van olyan konstruktor, amiben meg tudod adni a kezdeti n-t, s a toltottsegi tenyezot. Szoval ha tudod, hogy rohadt sok elemet fogsz belepakolni, akkor rogton csinalhatsz egy HashMap-et jo nagy n ertekkel, s akkor meguszol par rehash-t. Alapbol 16 bucket lesz, amit akkor ujrahashel, ha legalabb 13-ra no a size. Ekkor 32 bucket lesz, majd ha size legalabb 25 lesz, akkor ujrahashel 64 bucketbe, stb.
A LinkedHashMap az egy specibb valtozat, ahol az egesz HashMap-en tul egy LinkedList is fenn van tartva, ami az osszes elemet tartalmazza a hozzaadas sorrendjeben. Akkor kell hasznalni, ha fontos a hozzaadas sorrendjet tudni.
-
-
togvau
senior tag
Hashmap, meg minden erre alapuló ugye gyorsan tud keresni, kb függetlenül a benne lévő elemek számától.
De még is hogy találja meg azt, hogy a keresett hash az hol van? A doksi szerint linkedhashmap az alapja, de hogy találja meg a megfelelő node-ot, ha linkelve van? Hogy nem kell valahonnan elkezdve a linkeken lépegetni addig amíg meg nem találja a keresett keyt?Ha végiglépked, akkor csak azért gyorsabb mint egy list contains pl, mert nem equals megy többnyire, hanem hash==hash?
-
btraven
őstag
eclipse-ben ilyet is lehet csinálni?
rooms.add(room);❤😂😂😊😊❤🤦♀️😒👌😘💋👏🐱💻🐱👓👍😂🤣
kész vagyok...
Clean code-os fickó írhat új könyvet hogy nemcsak kommentet nem ajánlott írni, de emojit se.
Erről az az angol programozó jut eszembe aki botrányosan rossz kódot írt, de telerakta vicces megjegyzésekkel. True story. -
btraven
őstag
public void setManowar(int manowar) {
this.manowar = manowar;
setFleetLabelText();
}Mi a hiba?
-
btraven
őstag
Nálam az eclipse-ben a Problems fül mindig tele van.
[link] -
Aethelstone
addikt
válasz
btraven
#11585
üzenetére
Annak idején egy fejlesztőnyelv/eszköz-ben csak az volt ami nagyon kellett. Minden le volt dokumentálva és minden úgy működött ahogy a doksiban volt.
Nah jah, de akkortájt még nem is kellett annyi minden
És hidd el, hogy akkoriban vért kellett hugyozni annak a megírásával, amit most pár, jól irányzott annotációval százszázalékos biztonsággal meg tudsz oldani. Ilyen fejlesztői napidíjak mellett nem rentábilis egy problémát napokig reszelgetni, amikor triviális megoldás is van
-
Drizzt
nagyúr
válasz
btraven
#11585
üzenetére
"Nem lett bonyolult a helyzet ezzel a lambda meg stream-ekkel?"
Nem, sokkal egyszerűbb lett. Egyébként lambdát nem kötelező használni, ahol tudok inkább method reference-et használok. A streamnek meg fontos képessége a lazy eval, meg a concurrency support. Bizonyos problémákat tök egyszerűen, szépen, elegánsan és hatékonyan meg lehet oldani funkcionális eszköztárral, amit amúgy bonyolultan/csúnyán lehet megoldani nélküle.
"Annak idején egy fejlesztőnyelv/eszköz-ben csak az volt ami nagyon kellett. Minden le volt dokumentálva és minden úgy működött ahogy a doksiban volt."
Ez ma is így van. Maximum 1-2 szinte már sosem használt nyelvi elem léte lenne megkérdőjelezhető, de azok meg maradnak némi backward compatibility miatt. Az meg ha esetleg azért kérded ezt, mert szerinted a Stream felesleges, akkor egyszerűen még nem éreztél rá. Nélküle nagyon szar lenne az élet, ezt pár évi gyakori Stream használóként mondom. Nézz végig valamilyen alap fukncionális progamozást traininget, után egyértelműnek kellene lennie miért ilyen fontos dolog.
"Most már nehéz a programozó élete. A sok nyílt forráskódú, ingyenes cuccban az egyik fele nincs dokumentálva a másik fele meg hibásan működik vagy éppen sehogy. Ugye azért nyílt, mert majd kijavítod magad ha nagyon kell. Csak nem képzeled hogy ingyen még hibátlan is legyen?"
Ez megint nincs így. A lefontosabb, legnépszerűbb framework/libek leggyakrabban használt funkciói eléggé stabilak, ritkán kell körbebástyázni őket. A probléma az esetek 95%-ban abból adódik, hogy valaki megspórolja az alapjaik megismerését és anélkül kezdi őket használni valami olyan célra, amire nem feltétlenül alkalmasak. Még ha elő is fordulnak bugok, sokkal előrébb jársz, ha valami libet használsz rájuk, mintha 0-ról kezdenéd megírni. Sokkal tovább tartana, s a minősége is szinte borítékolhatóan rosszabb lenne.
Az utóbbi évekből pár dolog, aminek én nem voltam elégedett a dokumentációjával: annotation processor, Spring boot property source használat belsőségei. De az is lehet csak nem a megfelelő dokumentációt olvastam. Ráadásul Java-ban az se megy ritkaságszámba, hogy korábbi open source lib a nyelv részévé válik, pl.: Joda-time. -
btraven
őstag
Nem lett bonyolult a helyzet ezzel a lambda meg stream-ekkel?
Most mindig gondolkoznom kell hogy for legyen vagy stream.Tanmesét mondok. Bár lehet olyan régen volt hogy igaz sem volt.
Annak idején egy fejlesztőnyelv/eszköz-ben csak az volt ami nagyon kellett. Minden le volt dokumentálva és minden úgy működött ahogy a doksiban volt.Most már nehéz a programozó élete. A sok nyílt forráskódú, ingyenes cuccban az egyik fele nincs dokumentálva a másik fele meg hibásan működik vagy éppen sehogy. Ugye azért nyílt, mert majd kijavítod magad ha nagyon kell. Csak nem képzeled hogy ingyen még hibátlan is legyen?
-
Csaby25
őstag
Sziasztok!
Tudtok ajánlani egy összetettebb projektet, amivel jól be lehet gyakorolni a Java SE-t? Köszi! -
floatr
veterán
válasz
Aethelstone
#11580
üzenetére
Van persze, de még lusta voltam utána menni. Egyszer rászántam kb 10 percet, hogy egy hobbiprojektet megreszeljek, de nem ment egyből, aztán azóta úgy maradt. Csak amiatt mondom, hogy hajlamos ilyen problémákba belefutni.
-
floatr
veterán
válasz
Aethelstone
#11578
üzenetére
Nem ismeri fel java projektként. Pontosabban a java kiegészítő elhasal, amikor beolvassa a projektet, és nem működnek a java IDE funkciók.
-
floatr
veterán
válasz
Aethelstone
#11576
üzenetére
Nálam a vscode most valamiért elbabrálta a régebben létrehozott projekteket, mert gradle verziót frissítettem. Egyelőre még nem sakkoztam ki, hogy mi a baja
-
Aethelstone
addikt
-
-
btraven
őstag
válasz
Aethelstone
#11571
üzenetére
Őrület határán voltam. Ez a jpackage nem akart működni sehogy se a Hello world alkalmazással.
De aztán a gradle-s projectemben meg ment.
Eclipse-ből lehet futtatni gradle task-ot?
Nekem csak Command prompt-ból sikerült "gradlew.bat tasknév' módon. -
btraven
őstag
[Deploying libGDX with jpackage and Badass Runtime]
Ez a jpackage a legmodernebb módszer java alkalmazás telepítésére?
Hogy ne kelljen a felhasználónak JRE telepítgetéssel foglalkozni?Bár ez a Badass "jól" hangzik. Ennek a paranoiás felhasználók biztos örülnek.
-
Csaby25
őstag
Köszi
! Én sajnos nem gondoltam arra, hogy belassul csak arra, hogy megoldjam
.
Gondolom még nem vagyok olyan szinten, hogy az optimális megoldást keressem...
Amúgy a tömbös megoldás gyorsaság szempontjából jó, viszont a helyfoglalás miatt tényleg az általad említett jobb.. -
válasz
Csaby25
#11566
üzenetére
Én mind a két implementációt optimalizálnám.
Az elsőnél az a gond, hogy így baromi lassú, F(n)-t pont F(n) időben fogja kiszámolni, tehát lineáris helyett exponenciális lesz a futásidő. Ezen a már kiszámolt értékek eltárolásával lehet segíteni. Próbáld nagyobb értékkel futtatni, azt hiszem, az int-be 44-ig nem csordul túl, de ha átírod long-ra, akkor 89-ig próbálkozhatsz, azt pedig már lehetetlen kivárni.
A másodiknál pedig felesleges lefoglalni egy teljes tömböt, elég tudni mindig a két utolsó értéket:
if (n <= 1)return n;int a = 0;int b = 1;for (int i = 2; i <= n; i++) {int c = a + b;a = b;b = c;}return b; -
Csaby25
őstag
válasz
disy68
#11565
üzenetére
Ilyesmire gondolsz, hogy például oldjam meg a Fibonacci-t rekurzióval és ciklussal is: ?
public class Fibonacci{
public static void main(String[] args) {
System.out.println(fibonacciRecursion(3));
System.out.println(fibonacciLoop(3));
}
public static int fibonacciRecursion(int n) {
if (n <= 1)
return n;
return fibonacciRecursion(n - 1) + fibonacciRecursion(n - 2);
}
public static int fibonacciLoop(int n) {
int[] arr = new int[n + 1];
for (int i = 0; i < arr.length; i++) {
if (i <= 1)
arr[i] = i;
else
arr[i] = arr[i - 1] + arr[i - 2];
}
return arr[n];
}
} -
disy68
aktív tag
válasz
Csaby25
#11564
üzenetére
Akkor sanszosan a szokásos fizzbuzz/fibonacci jellegű feladatokra lehet számítani meg ilyen oldd meg iterációval/rekurzióval. Ha esetleg ennél több energiát fektetnének a dologba, akkor valami saját példa, amiből esetleg kiderül, hogy hogyan állsz hozzá egy feladathoz, hogyan gondolkodsz, ilyesmi.
Én annyit tanácsolok, hogy gondolkodj hangosan és ha a feladatnál értelmezhető, akkor kérj egy teszt esetet (bemenet-kimenet). És hajrá
-
Csaby25
őstag
Sziasztok!
Kezdő java-s mire számítson, ha technikai interjú előtt lesz két teszt papíron, ami kb. fél órát tart?
-
5766
csendes tag
Üdv!
Talán nem rossz helyen kérdezem....
Valaki ért a Dukascopy JForex programozáshoz?
https://www.dukascopy.com/swiss/english/forex/dealstation/#anchor-desktop
Vállal rá program írást valaki?
Nem tudom jó helyen kérdezem-e, talán ez is java.... bár lehet tévedek! -
btraven
őstag
Ellenszenves (volt) nekem ez a fuckcionális programozás.
De viszont próbálom használni, ahol lehet. Hogy tanuljam.
Aztán egyszer csak azt vettem észre hogy hogy kifogástalanul működik. Soha nincs bajom azokkal a programrészekkel.
-
Csaby25
őstag
Sziasztok!
Tudtok ajánlani egy kezdőnek, konkrét projektet ( projekteket), amivel jól be lehet gyakorolni a java-t. Köszi!
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Samsung Galaxy Watch6 Classic - tekerd!
- Milyen processzort vegyek?
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Kerékpárosok, bringások ide!
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Luck Dragon: Asszociációs játék. :)
- EAFC 26
- Jelszókezelők
- PlayStation 5
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- További aktív témák...
- Lenovo A485 Ryzen 5 pro 2500U, 16GB RAM, 256GB SSD, jó akku, számla, garancia
- LG UltraFine 4K és Smart Monitorok -30%
- Bomba ár! Lenovo ThinkPad L480 - i5-8G I 16-24GB I 256SSD I 14" FHD Touch I HDMI I Cam I W11 I Gar
- Bomba ár! HP 250 G6 - i5-7GEN I 8GB I 256GB SSD I HDMI I 15,6" FHD I HDMI I W11 I Cam I Garancia!
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max/
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

És hidd el, hogy akkoriban vért kellett hugyozni annak a megírásával, amit most pár, jól irányzott annotációval százszázalékos biztonsággal meg tudsz oldani. Ilyen fejlesztői napidíjak mellett nem rentábilis egy problémát napokig reszelgetni, amikor triviális megoldás is van

! Én sajnos nem gondoltam arra, hogy belassul csak arra, hogy megoldjam



