Hirdetés
- Parci: Milyen mosógépet vegyek?
- Brogyi: CTEK akkumulátor töltő és másolatai
- hcl: Huawei Mate 10 kókányolás
- gban: Ingyen kellene, de tegnapra
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- GoodSpeed: Pillangóhatás: F billentyű meghibásodása -új gamer számítógépasztal
- Magga: PLEX: multimédia az egész lakásban
- Luck Dragon: Asszociációs játék. :)
- Fire/SOUL/CD: INGYENES Clone és Backup-Restore alkalmazások tesztje [2024]
- btz: Internet fejlesztés országosan!
Ú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?:))
- Eladó Apple iMac 16.2 21,5": Core i5 4-core 3,1GHz, 16GB RAM
- AMILYEN GAMER PC-t AKARSZ AZT ÉN ÁR ALATT ÖSSZERAKOM NEKED! TELEVAGYOK KOMPONENSEKKEL! ÍRJ BÁTRAN!
- Alaplap takarólemez, hátlap, IO shield
- iPad 11 2025 Wi-Fi+Cellular 5G ( eSIM ) 64GB Blue, pár töltéssel, ÜZLETBŐL, GARANCIÁVAL
- Steam Deck 512GB LCD hibátlan állapotban
- Kezdő Gamer PC-Számítógép!Csere-Beszámítás! I5 6500 / RX580 8GB / 16GB DDR4 / 512 SSD
- Windows 10 / 11 Pro Retail aktiváló kulcs Azonnal szállítással, számlával, garanciával!
- HIBÁTLAN iPhone 14 Pro 256GB Space Black -1 ÉV GARANCIA -Kártyafüggetlen, MS3235
- Wacom Cintiq DTK-2260 digitális rajztábla
- BESZÁMÍTÁS! 64GB (2x32) Kingston HyperX Renegade 2666MHz DDR4 garanciával hibátlan működéssel
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest