Új hozzászólás Aktív témák
-
_kovi_
aktív tag
Sziasztok!
Segítsetek nekem légyszi. Nem bírom beállítani XP Pro-n a CLASSPATH értéket.
Hogy SciTE-vel tudjak fordítani.
Netbeans-t is használok, de a SciTE is megy mellett párhuzamosan.Egyáltalán mit kell oda beállítani, milyen értéket a JAVA könyvtár bin könyvtárát?
Próbáltam már mindent, amit a google-val lehet keresni, de nem működik...
Tesztre a CMD-ben a javac-ot írom be. CMD-ben a Java parancs az rendben lefut 1 oldalnyi szöveggel.Köszi,
-
DreaD88
tag
Helo!
Nemrég kezdtem javaban programozni és a hashset-el van most problémám...
Valaki le tudná írni, hogy kell használni?Jól tudom azt, hogy ha van mondjuk egy kollekcióm es hashset-be adom meg őket, akkor a hashset kiszűri az azonos elemeket és mindenből csak egyet ad vissza?
"INGYEN ÉLŐ PIÓCÁK" by Mr. Burns (Simpson család)
-
Karma
félisten
válasz DreaD88 #3153 üzenetére
Ha a "hashset-be adom meg" alatt azt érted, hogy létrehozol egy HashSetet, konstruktorban átadva a már meglévő kollekciódat; a "mindenből csak egyet ad vissza" alatt meg iterációt (foreach vagy manuális iteráció, mindegy) akkor igaz.
Azzal a kitétellel, hogy az elemek sorrendje összezilálódhat, mert semmi garancia nincs. Ha azt akarod, hogy a sorrend is megmaradjon, LinkedHashSetet használj.
[ Szerkesztve ]
“All nothings are not equal.”
-
Lacces
őstag
válasz DreaD88 #3153 üzenetére
Én úgy tudom, hogy alapból csak egyet is rak bele. És ezért lassú az elem beillesztése, de gyors az elem visszaadása. De mindig van tőlem okosabb a fórumban, érdemes rájuk várni
Amúgy itt találsz példákat a hashset műveletekhez, ha lejebb mész, akkor látsz még további témákat, remove, add, select stb.
Van a
Set h = new HashSet();
HashSet<Integer> h = new HashSet() típusú is -
DreaD88
tag
Köszi mindkettőtöknek, nézem az új infókkal...
Am a sorrend lényegtelen, mert generáltam 15 db abc oldalú háromszöget, mindegyiknek külön külön véletlen az oldalhossza és heron képlet alapján kiszámolom a területüket, ez meg is van, már csak annyi van hátra, hogy összehasonlítom a generált háromszögek területét, hogy ne legyen 2 egyforma.
"INGYEN ÉLŐ PIÓCÁK" by Mr. Burns (Simpson család)
-
addikt
válasz DreaD88 #3153 üzenetére
Definiáld felül a háromszög osztályban az Object ősosztály equals metódusát, és akkor adjon vissza igazat, ha a két háromszög területe megegyezik. Így amikor hozzáadogatod a háromszögeket a HashSet-hez, azok nem kerülnek bele a halmazba, amelyeknek a területe már szerepel.
Kódban ez vhogy így néz ki (nálam most a háromszög osztályt Triangle-nek hívják):
@Override
public boolean equals(Object o) {
if (o instanceof Triangle) {
Triangle t = (Triangle) o;
if (t.getArea() == getArea()) {
return true;
}
}
return false;
}
// A hashCode metódust is illik felüldefiniálni,
// ha az equals-t felüldefiniálod. Az a lényeg,
// hogy egyezzen meg annak a két objektumnak a hashkódja,
// amelyekre az equals igazat ad vissza.
@Override
public int hashCode() {
return (int) getArea(); // ezt lehet máshogy is, de a célnak megfelel
}[ Szerkesztve ]
-
thboxx
aktív tag
Hali!
Nem tudom, jó helyre írok-é' , de hátha... Szóval van egy .jar kiterjesztésű kis alkalmazásom, amit elvileg katt2x aztán megy, mint egy kis szutyok egy exe-s ősgame... de nálam nem történik semmi. Ill. pillanatra beugrik a parancssor, aztán ahogy jött, úgy el is tűnik... Legújabb JDK van fent a gépen... Már a hajamat tépem tőle... Valaki tudna nekem segíteni?
Üdv.
Ha már veszem a fáradtságot, és értékellek a kötött üzlet után, úgy te is tedd ezt meg!
-
kispx
addikt
parancssorban próbáld meg a program mappájában kiadni:
java -jar fájlneve.jarDe előszór a PATH változót állítsd be. (Feltéve ha még a java.exe elérési útvonala nincs benne)
[ Szerkesztve ]
-
kispx
addikt
Magyarul le van itt írva. A második bekezdés az érdekes, mivel neked már fent van a jdk.
"Windows operációs rendszeren parancssorból, vagy .bat állományból:
SET PATH=%PATH%;c:\Program Files\java\jdk1.5.0\bin ; ."Résznél természeten neked más elérési útvonalad lesz a jdk bin mappájához.
[ Szerkesztve ]
-
kispx
addikt
-
-
modder
aktív tag
válasz Superhun #3157 üzenetére
Én nem keverném ezt bele, mert az equals()-nak és a hashCode()-nak az egyedet kell tudnia azonosítania, és nem egyetlen tulajdonságát. Végtelenféle háromszöget lehet ugyanazzal a területtel. Szóval ez ellent mond a Java equals()-ra és hashCode()-ra vonatkozó contractjának.
Nem is adna jó eredményt, mert a terület nagy valószínűséggel Float lesz, amit nem tudsz még javában sem alapból úgy összehasonlítani, hogy mindig jó eredményt kapj, pláne nem az == operátorral:
http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Float.html#equals(java.lang.Object)Nem tudom mire kell itt a HashSet, de én úgy oldanám meg a dolgot memóriahatékonyan, hogy:
1) csinálok egy ArrayList<Haromszog> haromszogek listát
2) csinálok egy másik ArrayList<Float> teruletek listát
3) ahogy generálom a háromszögeket a ciklusban, egy belső ciklusban minden legenerált háromszögre végigmegyek a 'területek' összes elemén és megnézem, hogy benne van-e az új háromszög területe, így:
if(Math.abs( aktualisTerulet - ujHaromszogTerulet) < 0.001f)
benne van
else
nincs benne, hozzáadom a háromszögekhez a háromszöget, és hozzáadom a az ujHaromszogTeruletet a teruletekhezHa pontosabb float egyenlőség vizsgálat kell, ezt találtam neten http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm
esetleg gyorsabban futó megoldást is találhatsz, ha valamilyen orderes listet használsz pl http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Collections.html#binarySearch(java.util.List, java.lang.Object, java.util.Comparator) -vel keresel a területek között
[ Szerkesztve ]
-
bucsupeti
senior tag
Sziasztok!
Adott egy Hibernate-et és MySQL-t használó NetBeans alatt készített alkalmazás GUI-val.
Két táblázat van benne, amiket feltöltök a perzisztens objektumokkal. A második táblázat az első detail táblája, azaz az egyik adattagja (ami Set típusú) tételeit tartalmazza.
A lényeg az hogy ha törlök valamit a detail táblából akkor látom az SQL parancsot (delete) az output ablakban. Az SQL adatbázist megnézve látszik hogy törlődött a rekord, viszont a vizuális komponensben (jTable) nem látszik a frissítés. Természetesen újra feltöltöm a táblát, de nem frissül. Olyan mintha valahol (cache?) ott maradna az adat. Új session-t indítok minden egyes lekérdezésre, flush() és evicat() meg minden van a törlő művelet után, de nem frissül. Az output ablakban látszik hogy a select nem fut le újra, pedig ott van a lekérdezés és debugolva is ellenőriztem végrehajtja a sort, de nincs adatbázis kérés mögötte.
Ha kilépek és újraindítom a progit akkor már minden rendben látszik.Hogy lehet rábírni hogy frissüljön rendben minden? Mi a francért nem frissül?
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
-
gygabor88
tag
válasz bucsupeti #3170 üzenetére
Kod nelkul nehez megmondani, hogy mi a baj, de nem nyelsz el egy catch agban egy exceptiont, ami nincs kiloggolva?
"Új session-t indítok minden egyes lekérdezésre"
Ez anti-pattern. Mivel desktop approl van szo, gondolom csak egy user hasznalja egyszerre. Boven eleg akkor nyitni uj sessiont, ha az elozo inkonzisztens allapotba kerul.
[ Szerkesztve ]
-
sutszi
veterán
válasz bucsupeti #3170 üzenetére
Lehet, hogy nem pont ez kell neked, de amennyire nem látunk a kódból semmit, annyira talán ez is jó lehet: [link]
Egyébként gondold végig.
Mi a jTable adatforrása? Elvileg azon objektumok halmaza( valamilyen kollekció) melyeket a hibernate-en keresztül kezelsz és az adatbázis táblák rekordjainak feleltethetőek meg...Akkor most jön a kérdés...Pontosan honnan is törölted? (Ha a hibernate és a DB látja...) De a jTable nem...
Mondja, Mr. Babbage, ha rossz adatokat ad meg a gépnek, akkor is jó válasz fog kijönni belőle?" Képtelen vagyok felfogni azt az értelmi zavart, ami valakit egy ilyen kérdés feltevésére késztethet. - by Charles Babbage
-
modder
aktív tag
válasz bucsupeti #3170 üzenetére
Hogyan törölsz?
Ha simán törlöd a detail entitást, de nem nem frissíted a parent entitás (a másik táblából) Set-jét és nem mergeled (sorry nem vágom pontosan a hibernate-es terminológiát) őt, akkor a hibernate cache úgy érzékelheti, hogy az objektumon nem történt semmi változás (a kapcsolatot csak az egyik oldalról törölted, a parent felől nem), ezért nincs oka újra lekérdezni olyan result setet mégegyszer.Próbáld meg, hogy a parent entitás Set-jéből törlöd a detailt, majd mergeled a parent entitást.
Remélem ez menni fog.
[ Szerkesztve ]
-
bucsupeti
senior tag
válasz gygabor88 #3171 üzenetére
Köszönöm az eddigi válaszokat. Közben megoldódott a dolog egy session.clear() oldotta meg a problémát a tranzakció lezárása után.
"Ez anti-pattern. Mivel desktop approl van szo, gondolom csak egy user hasznalja egyszerre. Boven eleg akkor nyitni uj sessiont, ha az elozo inkonzisztens allapotba kerul."
Az igaz hogy desktop app, de ez miért is vonja maga után hogy "csak egy user használja egyszerre"?
Desktop app, de központi adatbázissal dolgozik. Az alkalmazás pedig a felhasználók gépein található meg.Egyébként nagy baj az ha egyetlen session-t használok a futás alatt?
Az architektúra úgynéz ki, hogy vannak a perzisztens osztályok, ez mellett van egy üzleti logikát megvalósító osztály (UzletiLogika) és van a kliens, ami bármi lehet, jelenleg egy desktop swing GUI.
Az UzletiLogika osztálynak egyetlen statikus adattagja van, ami nem más mint egy Session. Ezen dolgozik az összes metódus. A metódusok a kliens(ek)nek szolgáltatnak adatokat, amik különféle egyszerű és összetett adatszerkezeteket adnak át. A perzisztens osztályok adattagjait alakítják át listákká, vektorokká stb...
Paraméterül azonosítókat kapnak és soha nem adnak vissza perzisztált objektumot.
Így az UzletiLogika osztályban dolgozik csak a Hibernate. A GUI csak meghívja az ottani metódusokat és valamilyen nem perzisztens adatot kap, amit megjelenít.Most már működik a program.
A kérdésem az hogy a felvázolt architektúra szerintetek rendben van? Illetve jó megoldás-e az egyetlen session használata?
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
-
bucsupeti
senior tag
Nálad a pont!
Valóban a detail osztályból töröltem és nem a parrenten keresztül.
Kipróbáltam a javaslatodat és rendben van a dolog, ha a szülő osztály Set-jéből remove-olom az elemet. Ekkor már van adatbázis kérés és frissít rendesen!Köszi!
"Nem gond ha nem vágod a párologtatók bináris nyelvét..."
-
thboxx
aktív tag
válasz Superhun #3174 üzenetére
Semmilyen jar fájl nem megy... Mármint ha a telefonos jar fájloknak is mennie kéne így mert azokon, és ezen kívül más jar-om nincs...
Szerk.: igen, társítva lett...
[ Szerkesztve ]
Ha már veszem a fáradtságot, és értékellek a kötött üzlet után, úgy te is tedd ezt meg!
-
gygabor88
tag
válasz bucsupeti #3176 üzenetére
"A kérdésem az hogy a felvázolt architektúra szerintetek rendben van? Illetve jó megoldás-e az egyetlen session használata?"
Mint mondtam, a Session inkonzisztens allapotba kerulhet, igy nem erdemes csak egyet hasznalni. Ez a javadocban is le van irva.
A masik, hogy a Session nem thread safe, igy leginkabb a session-per-request megoldast szoktak kovetni. De ez nem azt jelenti, hogy ha egy muvelethez tobb select / insert /akarmi kell, akkor mindegyikhez letre kellene hozni egy sessiont.
A statikus dolgokat felejtsd el, unit tesztelhetetlen. Ritkan van ertelme (konstants, logger, ...), de alapvetoen csak thread safety problemakhoz vezetnek. Jelenleg is tobb kulonbozo metodusod dolgozik egy statikus nem thread safe peldanyon, tehat neked kell gondoskognod rola lockolassal vagy valami mas modon, hogy egyszerre csak egy valaki hasznalja. -
sztanozs
veterán
Próbáld meg tényleg valami desktopos alkalmazással - mondjuk ezzel: [link]
Ne zavarjon meg a fájlnévben a UNIX rész. Mivel java, így platformfüggetlen - csak azért unix, mert nem települ közvetlenül a windowsba, mint az installeres verzió.JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
thboxx
aktív tag
válasz Superhun #3185 üzenetére
ÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁÁ
Ezaaaaz!! Most parancssor-ból elindult! 1000 hálám érte!!
Szerk.:
(#3186) sztanozs: ez az alkalmazás viszont nem indult el, mert hiányzik neki az nspr4.dll...
[ Szerkesztve ]
Ha már veszem a fáradtságot, és értékellek a kötött üzlet után, úgy te is tedd ezt meg!
-
dany27
őstag
Üdv!
JTree-vel szeretném megjeleníteni a településeket megyékre lebontva.
Hogy tudom azt elérni hogy ha bent vannak a megyék a fában, és tölteném be a településeket egy fileból akkor tudja hogy melyik megye alá kell beszúrnia az adott települést?
Az megvan hogy hogyan döntöm el hogy melyik megye, csak azt nem hogy ezután hogy tudom megmondani neki hogy na ezt most ide szúrd be szépen...
Van egy telepulesek osztalyom melynek van egy megyeID adat tagja is, ez alapján könnyen megtudom mondani h az adott megyéhez melyik települések tartoznak.Előre is köszi a válaszokat!
-
thboxx
aktív tag
válasz Superhun #3189 üzenetére
Na... ha csak simán a java.exe-hez társítom, kidob egy olyan hibaüzenetet, hogy:
"Error: could not find or load main class D:\.......jar"
Parancssor meg megint nem tudja futtatható programként, vagy mi ként felismerni a <java> -t...
Ha már veszem a fáradtságot, és értékellek a kötött üzlet után, úgy te is tedd ezt meg!
-
gygabor88
tag
"Error: could not find or load main class D:\.......jar"
Nem minden jar futtathato. Sot, tipikusan a legtobb jar nem futtathato es valoszinuleg te is ilyet kaptal. A masik lehetoseg, hogy az alkalmazas keszitoje rosszul csomagolta be a programot es nincs beallitva main class a manifestben. Ilyenkor ugyan meg elindithatod a programot, de tudnod kell a main class pontos nevet hozza.
-
thboxx
aktív tag
válasz Superhun #3195 üzenetére
"C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files\PC Connectivity Solution\;C:\Program Files\Android\android-sdk\platform-tools\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Windows Live\Shared"
ezek vannak a path környezeti változóban...
(#3196) gygabor88: kicsit hétköznapibban fejtsd ki kérlek...
Szerk.: hozzáadtam a system32-t a környezeti változókhoz... de semmi
[ Szerkesztve ]
Ha már veszem a fáradtságot, és értékellek a kötött üzlet után, úgy te is tedd ezt meg!
-
addikt
Ha hozzáadtad a c:\Windows\System32 elérési utat, onnantól kezdve el kell tudni érned a parancssorból a java.exe-t és a javaw.exe-t. Nem írhat olyat, hogy nem találja ezt a programot. Ha ezt írja, akkor vagy nem jól adtad hozzá, vagy nem indítottad újra a parancssort, miután hozzáadtad.
Egyébként nagyon kevés elérési út van nálad a path környezeti változóban. A systemrootnak defaulton ott kéne lennie. Valaki vagy valami "tisztogatást" végzett nálad...
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Filmvilág
- Kerékpárosok, bringások ide!
- Motorola Edge 30 Neo - wake up, Jr...
- Kedvenc zene a mai napra
- A fociról könnyedén, egy baráti társaságban
- Milyen monitort vegyek?
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- AMD off topik: VGA, CPU, APU és minden, ami AMD
- Robot fűnyírók
- Képeken az egyik kameráját elvesztő Sony Xperia 10 VI
- További aktív témák...
- Bomba ár! Lenovo E31-80 - i5-6200U I 8GB I 256GB SSD I 13,3" I HDMI I Cam I Win10 I Garancia!
- Bomba ár! Lenovo ThinkPad L530 - i5-3GEN I 8GB I 500GB I DVDRW I 15,6" HD I mDP I W10 I Garancia!
- Bomba ár! Lenovo ThinkPad T570 - i7-7GEN I 8GB I 256GB SSD I 15,6" FHD I HDMI I Cam I W10 I Gari!
- Bomba ár! Lenovo X1 Carbon 6th: i7-8GEN I 16GB I 256GB SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- Dell Latitude E6430, E5430, E6410 i5 - i7 - 14" laptopok - számla, garancia
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen