- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- Gurulunk, WAZE?!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sh4d0w: Árnyékos sarok
- Mr Dini: Mindent a StreamSharkról!
- DeFranco: Tanuljunk angolul játékosan! - Duolingo
- btz: Internet fejlesztés országosan!
- M0ng00se: Hardvert áruhitelre?
Új hozzászólás Aktív témák
-
Megint itt kérdeznék nem Javá-s kérdést. Nekem erről van véleményem, de a tiétekre is kíváncsi vagyok. Van egy REST API amibe bekerült néhány RPC. Mennyire jó ezeket keverni, továbbá ha ott a REST van-e értelme az RPC-t használni - keverni?
(RPC csak bizonyos értéket settel, kvázi paraméter nélküli update lenne.)
mobal,
-
Szmeby
tag
válasz
Victoryus #9898 üzenetére
Ez a leírás kicsit kaotikus lett számomra. Mi az elvárt eredmény? A "feldolgozni" elég elvont fogalom. A tömb / HashMap vs. típus problémát sem igen értem.
Amúgy meg a szép megoldás olyami lenne, hogy van számla objektumod, ami tételek listáját tartalmazza. Van tétel objektumod, aminek van neve, mennyisége, egységára, nettó összege. A kedvezmény tipikusan külön tételként jelenik meg, de aggregálhatod is az aktuális tétellel, vagy akár bevezethetsz egy kedvezmény típust is (ami kísértetiesen fog hasonlítani a tétel típusra).
Soronként beolvasod a fájlt, létrehozol egy új számla objektumot, minden sornál egy új tétel objektumot, F esetén a számla objektum kész, bedobod egy listába és jöhet a következő friss számla.
Ezt lehet cizellálni, elindulni OOP irányba, hogy nem soronként jön létre tétel, hanem már létező nevű tételnél csak a meglévő mennyiségét növeled eggyel. Vagy elindulhatsz a minimalista irányba, nincs tétel objektum, hanem a számla fenntart egy map-et, a kulcs a tétel neve (String), az érték pedig a darabszám (Integer), és azt növelgeted szükség esetén.
Végül a kedvezményszámítás már könnyen megy, ha előállt a számlán az összes tétel, mennyiségtől függően kiosztasz nekik egy-egy egységárat, és abból már számolható lesz a nettó. Akár on-the-fly, nem nehéz számítás. -
válasz
usergefi #9897 üzenetére
köszönöm szépen!
A 2016-os érettséginél mivel érdemes feldolgozni a txt fájlt?
- F jeleni egy-egy vásárlás végét, a többi sor egy-egy árucikk.
- Alapvetően minden 500Ft, de ha többet vesz, kap kedvezményt. 2 db- 450, 3 db-tól 400Ft.
Példa txt fájl:
toll
F
colostok
HB ceruza
HB ceruza
HB ceruza
F
colostok
toll
F
szatyor
csavarkulcsKétdimenziós tömbbe tegyem? Ott azonos típusúnak kell lennie mindnek nem? Tehát nem tudom egyszerűen megsorszámozni, hogy 1-es vásárlás/toll stb... Bár van mód oda vissza konvertálni string-int között.
Hash map-pel? Ez tűnik leginkább logikusnak. Itt is belefutok abba, hogy azonos típusnak kellene lennie? -
usergefi
kezdő
válasz
Victoryus #9896 üzenetére
A szamokDb tömbben az szerepel, hogy az adott számot hányszor húzták ki:
szamokDb[szamok[i][j]-1]++
A
szamok[I][j]
az egyes számok lesznek, a fájlban elindulva pl. 37, 42, 44, 61, 62, 18, 42 stb...
Kivon még belőle egyet, hogy 0-tól induljon a tömb indexelése (erre mondjuk nem vágom, miért van szükség), így aztán például a legelső esetben a fenti kódrész:szamokDb[37-1]++
, a második számnál: szamokDb[47-1]++ és így tovább. Tehát a szamokDb azt fogja tárolni, hogy melyik számot hányszor húzták ki, a tömb indexe lesz a szám-1, amit kihúztak, az értéke pedig hogy hányszor.Aztán a kérdéses résznél 2-esével ugrálunk 0-tól kezdve. Mivel -1-et kivontunk, ezért a 0-ás index igazából az 1-es szám, a 2-es a 3-as, a 4-es az 5-ös és így tovább. Majd az értékeket hozzáadjuk a páratlan szám számlálóhoz. Ha mondjuk 1-esből volt 3, 5-ösből 2, akkor eddig 5 páratlan számod lesz.
A 8-as feladatnál az általad kérdezett 0-e feltételnek is a fentiekben találod meg az értelmét, ha az érték 0, az azt jelenti, hogy egyszer sem húzták ki. Ugyanúgy végigmegyünk a szamokDb tömb prímszámos idexein (megint -1), és megnézzük, hogy kihúzták-e (>0 az értéke), vagy sem (==0).
A te megoldásod is tökéletes lenne, a fenti megvalósítás nekem is túl absztrakt
Amúgy meg ha ezt a nyelvet fogod használni, akkor sosem kell ilyen kódot írnod majd, vagy max nagyon specifikus esetekben. Ez tipikus magyar oktatásbeli hülyeség, hogy egy olyan nyelvet, amiben az objektum orientáltságot, beépített könyvtárakat és függvényeket, skálázhatóságot, több szálúságot kéne használni (mert erre való), arra kényszerítünk, hogy több dimenziós primitív tömbökkel szivassuk a jónépet
-
válasz
Victoryus #9895 üzenetére
A 8.feladatot se értem, amikor megnézi, hogy melyik prím számot nem húzták ki. Hogy megy végig a tömbön? Miért az a feltétel, hogy
if( szamokDb[sz-1] == 0 )
? A java-t pont ezért nem szerettem sose, mert nem látom át. De hát ez a legkeresettebb nyelv, szóval kénytelen leszek megszeretni. -
Köszönöm! Még egy kis segítséget kérnék. Adott a 2005-ös emelt érettségi lottós feladata. Találtam is egy jó oldalt (webotlet.hu) ahol elég szépen össze van szedve a java nyelvről sok minden. Itt fent van a lottós feladat megoldása is.
Amit nagyon nem értek, hogy hogyan számolja meg a páratlan számokat? (6. feladatrész) Ha kiíratom a szamokDb érékeit ezt adja:
4 2 2 6 1 0 2 1 3 0 5 6 5 0 4 3 5 3 4 2 2 1 3 2 2 2 2 4 1 5 5 0 2 4 1 6 5 2 3 2 1 4 3 2 4
De miért? Én mondjuk soronként megszámolnám mennyi a páratlan szám, vagy az összeset beolvasnám és egyesével megvizsgálnám párosak-e, de itt valami mást csinál. No ezt nem értem, hogy mit is?
Ezek az adatok:
37 42 44 61 62
18 42 54 83 89
5 12 31 53 60
1 28 47 56 70
54 56 57 59 71
7 21 33 39 86
21 29 37 48 68... 51 sor van összesen a txt fájlban. -
Az első 100 prímszámot szeretném tömbbe kiiratni. Ezzel a kódommal az a gond, hogy az üres elemeket is beleteszi a tömbbe. Mit szúrtam el?
public class prim100 {
public static void main(String[] args) {
boolean prim = true;
int szamlalo = 0;
int tomb[]=new int[1000];
int i = 1;
do{
i++;
prim = true;
for (int j = 2; j <= Math.sqrt(i); j++){
if (i % j == 0){
prim = false;
break;
}
}
if(prim == true){
System.out.print(i + " ");
tomb[i]=i;
szamlalo++;
}
}while(szamlalo != 100);
// tömb elemeinek kiíratása
System.out.println("\n" +"A tömb elemei:");
for( int k = 0; k < tomb.length; k++ )
{
System.out.print(tomb[k]+" ");
}
}
} -
usergefi
kezdő
válasz
PitkyePadvan #9891 üzenetére
Ha a google-be beírod, hogy java tutorial, vagy java course, biztos találsz ezer meg egy ingyeneset is. Igaz, hogy angol nyelvűek, de ezen a szakterületen arra is szükség lesz. Pár dollárért udemy-n, lynda.com-on is biztos találsz korrekten felépített tananyagokat. Én ezeket javasolnám.
-
PitkyePadvan
tag
Sziasztok!
Jelenleg egyetemre járok és olyan szakirányon vagyok ahol nem vettem Java-t.
Szeretnék jelentkezni munkára, viszont lehet hogy Java-t is kellene tudnom hozzá
(illetve egy tesztet kellene kitöltenem).Egy olyan kérdésem lenne hogy van-e valami jó összefoglaló (akár diák, jegyzet, könyv stb...) ami kifejezetten a nyelvről szól? Mivel C++ -t tanultam főleg ezért van fogalmam a dolgokról (függvény túlterhelés, öröklődés, mutatók (ami Java-ban úgy tudom nincs) ), viszont jó lenne valami amiből megtanulhatnám ezt a nyelvet is.
-
A második kérdést úgy értettem, hogy az jó megoldás, hogy építek egy docker imaget, majd az imagen lefuttatom a tesztet és ha minden oké mehet is prodba.
Előbb fusson a teszt + akármi és utána készítsek imaget?
Egyáltalán mikor célszerű kreálni?
Nem tudom jobban körülírni!
mobal,
-
Kicsit off, de nem tudom hova írjak. Docker-rel megoldható, hogy 3 féle képpen indítsam az imaget?
Pl.: van 3 db bash scriptem,
test.sh
,prod.sh
ésdev.sh
.Ha jenkinsből hívnám a gate-nél akkor a
test.sh
futna le, ha kiraknám élesbe aprod.sh
fejlesztéshez, debughoz pedig adebug.sh
.mobal,
-
Szmeby
tag
válasz
garage112 #9879 üzenetére
Szia, gyakorolj tovább, mert ez nem java.
Viccet félretéve. Azt már tudjuk, hogy mit kellene csinálnia, viszont nem írtad le, hogy ez helyett mit csinál.
Persze nem is fontos, hogy leírd nekünk, hiszen neked kell megértened. Javaslom, vegyél elő papírt, ceruzát, és szépen, apró lépésekben járd végig az utat egyesével, hogy a változók milyen értékeket vesznek fel, és a while, ill. for ciklusok feltételei igazként vagy hamisként térnek vissza. Minden egyes körben. Nyugi, nem lesz sok.
Legalább egyszer végig kell szenvedned magad ezen, hogy megértsd, mi miért történik. Később már könnyebb lesz.Ha megvan fejben, hogy mit csinál, akkor már csak azt kell kitalálnod, hogy a feltételekben lévő matekot hogyan kell átalakítanod, hogy az elvárásaid szerinti eredményt produkálja. A ciklusokban az a jó, hogy csak az első és a végső állapotot kell jól kimatekoznod, a kettő között az inkrementálás elvégzi a többit. Hajrá!
(Feltételeztem, hogy a nyelvi elemek működésével tisztában vagy, vagyis hogy mit csinál a while és for ciklus , meg az increment úgy általában.)
-
garage112
aktív tag
Sziasztok!
Gyakorló Javasként egy kicsit elakadtam. A feladat az lenne, hogy 20 buszvonalból, 10-15-ig járnak a buszok, 16-20 ig nincs közlekedés. Viszont sehogy sem jövök rá a helyes megoldásra. Ezt a segédletet kaptam mellé:var totalBusLines = 20;
var movingBusLines = 9;
var numberOfBusLines = 10;while (numberOfBusLines <= totalBusLines +1 - movingBusLines) {
console.log('A(z) ' + numberOfBusLines + ' számú vonalon zavartalan a közlekedés');
numberOfBusLines++;
}for (numberOfBusLines; numberOfBusLines <= totalBusLines; numberOfBusLines++) {
console.log('A(z) ' + numberOfBusLines + ' számú vonalon jelenleg nincs közlekedés');
}Előre is köszönöm a segítségeteket !
-
válasz
Aethelstone #9876 üzenetére
?
-
MrSealRD
veterán
válasz
Aethelstone #9870 üzenetére
Nagyon röviden, most van egy SVN + Jekins + Sonar + Jfrog artifactory kombó, amit használunk a fejlesztés során. De ez 3rd party üzemeltetés most amivel sok a baj... Ezért az egészet lokálba hozzuk át. És ha már 0-ról építjük akkor újragondoltuk meg verziót frissítettünk. SVN kuka, helyette lesz Git. Jfrog helyett meg Nexust néztük. Így jött ki ez a kis probléma. Még erősen a pilot szakaszban vagyunk...
Ha a gitlabbal megoldható, hogy kidobjuk a Jenkinst akkor az üzemeltetés lehet örülni fog, hogy kevesebb rendszerrel kell foglalkozni.
-
MrSealRD
veterán
válasz
Aethelstone #9868 üzenetére
Hm. Ez nem jutott eszünkbe. Most nem vagyok még képben teljesen mennyire használjuk ki a Jenkinst, de amit én tudok az a klasszikus SNAPSHOT és RELEASE build készítés, ami utána artifactoryba pakol... Ettől függetlenül lehet olyan képessége a Jenkinsnek amiben a Gitlab le van maradva?
-
MrSealRD
veterán
Használ valaki Gitlab + Jenkins + Nexus kombinációt? Mindenből az aktuális legfrissebb verzióval próbálunk egy zöldmezős projektet összerakni. A probléma abból adódik, hogy Jenkins 2 nem működik együtt Nexus 3-al, Maven projektek esetén. Ezt leírják a plugin mellé is, de már hónapok óta jelentették Jenkins és Nexus felé. Nincs valami trükk erre, hogy életre kelljen?
-
disy68
aktív tag
Java alatt az integer/short/akármi az egy szám reprezentáció számrendszertől függetlenül. Az alapértelmezett számrendszer a toString-nél a 10-es.
Integer.toString(int i, int radix)int binary = 0b0010;
int hexa = 0x0ef2;
int sum = binary + hexa;
System.out.println(sum);
System.out.println(Integer.toString(sum, 2));
System.out.println(Integer.toString(sum, 8));
System.out.println(Integer.toString(sum, 16));szerk: Amúgy a java elnevezési konvenciókról olvass még kicsit..
-
skoda12
aktív tag
Na, tehát a javadoc szerint: Csak olyan karakterek lehetnek a stringben, ami az adott számrendszerben használható. Ez magyarázza, hogy a "0x" prefix esetén miért nem működik. Ha csak "0" prefixet használsz, akkor működnie kell, most próbáltam egy online java compilerrel.
Ezt a 390-es dolgot nem értem. 10-es és 16-os számrendszerben értelmezve is simán beleesik a short intervallumába (a vessző nem tizedesvessző, hanem ezres határoló).
-
Sokimm
senior tag
Sajnos már nem volt idő szerkeszteni az előző hsz-t...
Arra rájöttem, hogy a 0x kezdés nélkül képes konvertálni, de egy másik hex alapú (068E) számot már nem.
Aztán néztem, és az eszközk ID-jai elé a függvény generátora betolhat töltő nullákat (ezért az első nulla sem kell, elég 3 karakter, csak 4 digitet akar megjeleníteni (nem tudom mért)).Ha simán a 68E-t konvertálom, akkor megint jó.
Már csak azt nem értem, hogy hogy fér el egy 16 bit-es short-ban (min -32,768 max 32,767 (inclusive)) a 390-es érték.System.out.println(info.getProductId());
Mert erre a console a 390-et adja. (ez már más érték, mint az előbb hozott string/short dolog)A println függvény játszik valamit a kiírási értékkel?
.45! Igen az elgépelés, a valódi kódban jól vannak elnevezve!
-
.45
csendes tag
a parseShortnál rossz változót konvertálsz, a product_ID-t kéne
másfelol nekem sem mukodik ami érdekes, mert ok itt ugyanígy csinálták: String to Hex Short
-
Sokimm
senior tag
válasz
skoda12 #9861 üzenetére
String product_ID = "0x0105";
short ProductID_short = Short.parseShort(product_ID_String, 16);
így se jó. (és még azt se tudom, miként tudnám jobban szétbonatani a debug-hoz)...és azért akarom megcsinálni, mert mindent meg lehet csinálni programozással.
Ez egy kihívás, amúgy meg egy rakat adatot akarok return-olni egy függvényből, amit (short to string)-re konvertálom, majd string-ként kiküldöm (összefűtés után). (mivel a legkomplexxebb adattípus a string az adathalmazomban)Amúgy valami objektumként is return-olhatnék, de ha már mint problémába ütközött tanuló, érdekelne, hogy miként lehet a string-emből ismét short. (mert az volt még 3 másodperccel ezelőtt)
-
Sokimm
senior tag
-
Sokimm
senior tag
Köszönöm, köszönöm, így már megy (nem sok időm van programozni, de már megy ez a része, hála nektek!)
Köszönet mindenkinek!Új problémába futottam, remélem erre is lenne pár szavatok:
Nem tudok string-ből short-ot csinálni.public static void main(String[] args) throws IOException {
String product_ID = "0x068E";
Controller StringToShort= new Controller();
StringToShort.ASD(product_ID);
}public static void ASD(String product_ID_String) throws IOException {
short ProductID_short = 0;
try {
ProductID_short = Short.parseShort(product_ID_String);
} catch (NumberFormatException e) {
System.err.println("The string is not properly formatted!");
}
}Mért nem tudom short-á varázsolni a string tartalmat?
-
Amartus
senior tag
Felvilágosítani valaki, aki érti, hogy mi van a Java-val? Most nézem, hogy a 8-asnak megszűnt a támogatása(oracle.com), a kilencest már nem is látom a letöltések oldalon az oracle-nél. Viszont ott van a 10.0.1-es.
Most akkor melyik az "éles" verzió?
-
Szmeby
tag
Hogyan lehet vizsgálni, ha egy Objektum példánya létrejött (van, létezik)?
if (myObject != null) {
System.out.println("myObject objektumom létezik, hivogathatom a metódusait");
} else {
System.out.println("myObject objektumom nem létezik, ha ráhívok egy metódusára, NullPointerException a jutalmam");
}vagy
if (myObject instanceof String) {
System.out.println("myObject objektumom létezik, sőt azt is tudom róla, hogy String típusú, így bátran Stringgé castolhatom");
}Ha eleve String típusú a myObject változód, akkor felesleges instanceof-olni.
Pl.:String myObject = "kiskutya";
A bal oldalon jelölve vagyon, hogy ez legalább egy String, és mivel a java erősen típusos nyelv, compile error figyelmeztetne, ha valamit elcsesztél volna.Object myObject = "kiskutya";
Ebben az esetben nem lehetsz teljesen biztos benne, hogy ez egy String (annak ellenére, hogy erről a nyilvánvaló példáról ordít, hogy az), de ha szeretnéd String-ként kezelni, akkor castolnod kell mielőtt meghívod rajta a String osztély metódusait ((String)myObject).isEmpty(); Ha pedig ezt biztonságban szeretnéd elvégezni, akkor a castolás előtt érdemes csekkolni egy instanceof-fal, hogy valóban String van-e benne.
A null nem String, a null nem is Object, a null semmi. Az instanceof mindig false-szal fog visszatérni egy null referenciára, mert a semmiről nem lehet eldönteni annak típusát.És ha létrejött a példány, akkor még lehet null tartalmű, amire hogyan kérdeznétek rá? (azon túl, hogy kiteszed egy lokális változóba, ahogy az előbb írtad (ha nincs más, marad ez a módszer, csak elég bénácskának néz ki a kezdő szememnek))
Ha létrejött a példány, nem lehet null.Kiteheted lokális változóba, ha úgy kényelmes:
String product = info.getProductString();
if (product != null && product.equals("CM STORM INFERNO GAMING MOUSE")) {
System.out.println("match!!!");
}De nem kötelező, használhatod a gettert is újra meg újra:
if (info.getProductString() != null && info.getProductString().equals("CM STORM INFERNO GAMING MOUSE")) {
System.out.println("match!!!");
}De akár meg is mókolhatod a lekérdezéskor, hogy kiküszöböld az API hülyeségeit:
String product = info.getProductString() == null ? "" : info.getProductString(); // ez egy ternáris operátor, egyfajta kompakt if: ha a getter null, akkor üres stringet használ helyette, különben meg a getter által visszaadott nemnull értéket
if (product.equals("CM STORM INFERNO GAMING MOUSE")) {
System.out.println("match!!!");
}A java könyvek, vagy pl. az oracle tutorial relatíve korán elmagyarázza a java objektumok, referenciák, nullitás témakörét, érdemes rászánni azt a kis időt.
-
Aethelstone
addikt
Tisztázzuk. A csak deklarált, de még nem inicializált objektum kb. ugyanaz, mintha deklarálod, new Akarmi()-vel példányosítod, majd null-ra seteled. Ergó a kezelése is kb. ugyanaz.
Ha már létrejött egy példány, akkor nem lehet null...max a példányváltozók, de az megint egy másik kérdéskör. -
Sokimm
senior tag
válasz
Lortech #9846 üzenetére
Nem kérdezek vissza, hogy mi minden ellentmondó, de így nem tudok érvelni, se indokolni, hogy mi hogy...
A 2 kérdésemet akkor egyszerűsítve tenném fel:
Hogyan lehet vizsgálni, ha egy Objektum példánya létrejött (van, létezik)?
És ha létrejött a példány, akkor még lehet null tartalmű, amire hogyan kérdeznétek rá? (azon túl, hogy kiteszed egy lokális változóba, ahogy az előbb írtad (ha nincs más, marad ez a módszer, csak elég bénácskának néz ki a kezdő szememnek))Az összes választ itt szeretném előre (és hátra) megköszönni, nem szemetelném vele a fórmumot a későbbiekben!
(de úgy érzem a végére értünk a témának)
Köszönöm mindenkinek!
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Formula-1 humoros
- Bevonják az AI-t az atomreaktorok építésébe
- Fejhallgató erősítő és DAC topik
- One otthoni szolgáltatások (TV, internet, telefon)
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- Anglia - élmények, tapasztalatok
- PR-Telecom
- Futás, futópályák
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- További aktív témák...
- Egyedi ékszerdobozka
- BESZÁMÍTÁS! Gigabyte H610M i5 13400F 16GB DDR4 512GB SSD RX 6700XT 12GB DeepCool MATREXX 40 650W
- Bomba ár! Dell Latitude 7320 - i5-11GEN I 8GB I 256SSD I HDMI I 13,3" FHD I Cam I W11 I Garancia!
- LG 65B4 - 65" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready
- Samsung Galaxy Xcover 5 64GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest