- Samsung Galaxy S21 FE 5G - utóirat
- Magisk
- iPhone topik
- India felől közelít egy 7550 mAh-s Redmi
- Fotók, videók mobillal
- Samsung Galaxy Fit 3 - keveset, de jól
- Mobil flották
- Honor 400 Pro - gép a képben
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
Új hozzászólás Aktív témák
-
lanszelot
addikt
válasz
axioma #12107 üzenetére
Először is köszönöm szépen a segítséget.
Igen at tudom írni a tipust
Csak mint írtam még kezdő vagyok és összezavarna.
Így ránézésre azonnal tudom, hogy az image, vagy text.
Nekem még kellenek ezek.
Azért is rakom tele megjegyzéssel.
Számomra sokkal jobban átlátható.
Pl ha nincs időm 2 napig rá, akkor ezek segítenek mi merre. -
lanszelot
addikt
válasz
axioma #12105 üzenetére
Először is köszönöm szépen a segítséget.
Így én bis tudom, csak az úgy nem jó.
Ahol létrehozzon ott még nincs imageView1-5
Tehát ott nem tehetem bele.
Csak ott tehetem bele ahol már léteznek.
Azt írtad ott kint hozzam létre, azért tettem oda ki.
Viszont én nem tudom, és nem találtam, hogy lehet egybe hozzá adni az elemeket. Ezért kérdeztem.A tipus az ImageView, nem View.
Így tanultam, és mindenhol így is van.
TextViewnek is TextView és nem View.
És minden tipusnak önmagát adják meg.
Kezdő vagyok, így lehet, hogy lehet másképp, de össze zavar és inkább úgy csinálom ahogy tanultam. -
lanszelot
addikt
válasz
axioma #12101 üzenetére
Switch - valóban
Azt el is kezdtem átnézni kell e még, de jött a postás, és huss elfelejtettem
viewNr scope miatt. Az imageView nem érhető el kintről.
For ciklus nem lesz. Egyesével lesznek meghivva if -hez kötve, többször, többféleképpen.
Emiatt lehet kell majd a randSzam, így nem nyúltam hozzá. -
lanszelot
addikt
válasz
axioma #12099 üzenetére
de nem int-et adtam meg.
one, two, three, four, five - ezek az id-k amiket megadtam.itt a progi.
Persze nem így lesz, csak most for -al csináltam, hogy azt is gyakoroljam.
De a for nem jó, for helyett method kell nekem majd.ImageView viewNr[] = new ImageView[5];
int imgId[] = new int[]{R.drawable.one, R.drawable.two, R.drawable.three, R.drawable.four, R.drawable.five, R.drawable.six};
public void kockaAkcio(int v, int r){
switch(r) {
case 0:
viewNr[v].setImageResource(imgId[0]);
break;
case 1:
viewNr[v].setImageResource(imgId[1]);
break;
case 2:
viewNr[v].setImageResource(imgId[2]);
break;
case 3:
viewNr[v].setImageResource(imgId[3]);
break;
case 4:
viewNr[v].setImageResource(imgId[4]);
break;
case 5:
viewNr[v].setImageResource(imgId[5]);
break;
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
Random random = new Random();
ImageView imageView1 = findViewById(R.id.Egyes);
ImageView imageView2 = findViewById(R.id.Kettes);
ImageView imageView3 = findViewById(R.id.Harmas);
ImageView imageView4 = findViewById(R.id.Negyes);
ImageView imageView5 = findViewById(R.id.Otos);
Button button01 = findViewById(R.id.Dobas);
button01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int[] kockak = new int[5];
int randSzam = random.nextInt(5);
//itt hozom letre a kepek helyenek a valtozot es tombbe rakom tombben
viewNr[0] = imageView1;
viewNr[1] = imageView2;
viewNr[2] = imageView3;
viewNr[3] = imageView4;
viewNr[4] = imageView5;
for (int i =0; i<5; i++){
randSzam = random.nextInt(5);
//itt rakom be a dobast
kockak[i] = randSzam;
//itt hivom a methodot
kockaAkcio(i, randSzam);
}
}
});
} -
lanszelot
addikt
válasz
axioma #12093 üzenetére
Nagyon szépen köszönöm a segítséget.
Így sikerült:
ImageView viewNr = imageView1;
int imgId = R.drawable.one;
viewNr.setImageResource(imgId);Így már be tudom rakni for ciklusba, tömbbe, method-ba.
Viszont ezzel teljesen felborul az adat tipusok.
Mivel ebben az esetben int nem egész szám.
Ha viszont azt nézem hogyan használja, akkor minden boolean, mert a cpu 0 és 1 -eseket értelmez.
Tehát nem értem hogy int a String, ami nincs idézőjelben. -
válasz
axioma #12093 üzenetére
El fog futni, mert az R.drawable.* az android által generál resource azonosítója lesz.
pl src/drawable/one.png => R.drawable.one
R az android által generált resource osztály, amiben lehet csomó bepakolt resource azonosítója és azon keresztül lehet ezekre hivatkozni. Ezért is lesz int az értéke amit ki lehet debugolni, de amúgy lényegtelen, hogy mi is az.
@lanszelot: Egyszerűbb lenne ha felraknád a kódod valahova, pl github-ra és viszonylag gyorsan meglenne a megfejtés. A hiba pedig amit ír csak szemantikai hiba, nem runtime vagy fordítási. Szerintem rossz helyre másoltad be a kódot vagy ilyesmi.
-
lanszelot
addikt
válasz
axioma #12089 üzenetére
Először is köszönöm szépen a választ mindenkinek.
Azt láttam hogy int -et kér.
De ez "R.drawable.one" hogy int?
Int az egész szám.
Az meg String. Az a kép ID megadása. Az id "one" az is string.Most nagyon meg vagyok kavarodva.
Nem tudom hogy adhatok int -et.hoopy: este ha haza érek megpróbálom.
-
lanszelot
addikt
válasz
axioma #12084 üzenetére
Biztonság kedvéért kipróbáltam, de egyik se működik.
Vagy én csinálok valami hülyeséget, vagy nagyon rosszul mondom el.imageView1.setImageResource(R.drawable.one);
Ez a sor szent és sérthetetlen.
Semmit se lehet benne változtatni.
Nem használhatok változót, se kikérést, se függvényt, semmit.imageView1.setImageResource(myFunc())
Tehát ez nem működik. /myFunc()/
Az "R.drawable.ID" -nek kell ott lenni. Semmi mást nem fogad el.
Igen, létre hoztam a method-ot returnnal ami azt a sort adja vissza. Próbáltam rengetegféle képpen, de nem.Vagy nem így kell beírni. Lehet össze kell fűzni.
Php-ban ponttal fűzöm össze, JavaScript -ben +. -erre gondolok.
Tudom, hogy html-t js-el, de nem fogad el semmit.
Valahogy másképp kell. -
lanszelot
addikt
válasz
axioma #12085 üzenetére
Először is köszönöm szépen a segítséget.
Folyamatosan agyalok azon amit írtál.
Van pár dolog amit nem értek.
Nagyon kezdő vagyok valószínűleg azért.fg - ez nem tudom mi. Függvényre gondolnék, de én nem tudok java-ban függvényéről. Method és class -ról tudok csak.
Map az miért lenne jó?
Map az érték párok bevitele, módosítása stb -re jó.
Nekem fix értékek vannak amik sohase változnak, és sohase kell hozzáadni. Minden fix.
Akkor miért lenne jó a map? -
lanszelot
addikt
válasz
axioma #12082 üzenetére
Nagyon szépen köszönöm a segítseget.
Sajnos nincs semmi ami ismétlődne.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});
Random random = new Random();
ImageView imageView1 = findViewById(R.id.Egyes);
ImageView imageView2 = findViewById(R.id.Kettes);
ImageView imageView3 = findViewById(R.id.Harmas);
ImageView imageView4 = findViewById(R.id.Negyes);
ImageView imageView5 = findViewById(R.id.Otos);
Button button01 = findViewById(R.id.Dobas);
button01.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int[] kockak = new int[5];
//elso kocka
int randSzam = random.nextInt(5);
kockak[0] = randSzam;
switch(randSzam) {
case 0:
imageView1.setImageResource(R.drawable.one);
break;
case 1:
imageView1.setImageResource(R.drawable.two);
break;
case 2:
imageView1.setImageResource(R.drawable.three);
break;
case 3:
imageView1.setImageResource(R.drawable.four);
break;
case 4:
imageView1.setImageResource(R.drawable.five);
break;
case 5:
imageView1.setImageResource(R.drawable.six);
break;
}
//masodik kocka
randSzam = random.nextInt(5);
kockak[1] = randSzam;
switch(randSzam) {
case 0:
imageView2.setImageResource(R.drawable.one);
break;
case 1:
imageView2.setImageResource(R.drawable.two);
break;
case 2:
imageView2.setImageResource(R.drawable.three);
break;
case 3:
imageView2.setImageResource(R.drawable.four);
break;
case 4:
imageView2.setImageResource(R.drawable.five);
break;
case 5:
imageView2.setImageResource(R.drawable.six);
break;
}
//harmadik kocka
randSzam = random.nextInt(5);
kockak[2] = randSzam;
switch(randSzam) {
case 0:
imageView3.setImageResource(R.drawable.one);
break;
case 1:
imageView3.setImageResource(R.drawable.two);
break;
case 2:
imageView3.setImageResource(R.drawable.three);
break;
case 3:
imageView3.setImageResource(R.drawable.four);
break;
case 4:
imageView3.setImageResource(R.drawable.five);
break;
case 5:
imageView3.setImageResource(R.drawable.six);
break;
}
//negyedik kocka
randSzam = random.nextInt(5);
kockak[3] = randSzam;
switch(randSzam) {
case 0:
imageView4.setImageResource(R.drawable.one);
break;
case 1:
imageView4.setImageResource(R.drawable.two);
break;
case 2:
imageView4.setImageResource(R.drawable.three);
break;
case 3:
imageView4.setImageResource(R.drawable.four);
break;
case 4:
imageView4.setImageResource(R.drawable.five);
break;
case 5:
imageView4.setImageResource(R.drawable.six);
break;
}
//otodik kocka
randSzam = random.nextInt(5);
kockak[4] = randSzam;
switch(randSzam) {
case 0:
imageView5.setImageResource(R.drawable.one);
break;
case 1:
imageView5.setImageResource(R.drawable.two);
break;
case 2:
imageView5.setImageResource(R.drawable.three);
break;
case 3:
imageView5.setImageResource(R.drawable.four);
break;
case 4:
imageView5.setImageResource(R.drawable.five);
break;
case 5:
imageView5.setImageResource(R.drawable.six);
break;
}
}
});
}
}Másik fórumon ezt írták, de egy szót sem értek belőle /nem az angol miatt/
"Do you want to have a dynamic drawable resource ID? If yes, there is a way to get the ID by the resource name. However, I strongly suggest you think carefully before taking this path. Having a map where you associate static resource IDs with another value might be better." -
lanszelot
addikt
válasz
axioma #12080 üzenetére
Pont ez a bajom, hogy nem tudom se függvényében, se for ciklusba tenni.
Mert nem pontosan ugyanazt kell végrehajtani.
Az "imageView" - t és az ID -t is módosítani kell.
De nem tudom, mert se paramétert, se változót nem tudok beletenni.Többel is ugyanaz, kikérést se tudok bele tenni.
Nem tudom hogyan kell. -
lanszelot
addikt
válasz
axioma #12078 üzenetére
Ez jó lenne, de ebben az esetben iszonyat hosszú kódot kell írnom.
Generálok egy szamot,
Switch berakja imageView1 -esbe
Majd
Generálok egy számot
Switch berakja imageView2-esbe
Stb
Mindent 5ször ismétlek.Mint ahogy írtad, majd a végén azt szeretném, hogy for ciklus végig szalad rajta.
De még tanulom, így igaz, hogy ez megoldás, de nem tanulok.
Nem tudom hogy tudok oda változót berakni.
Azért van tömbből a változó, hogy majd tovább haladhassak a tanulással.Elnézést, hogy kuszán írok. Még kezdő vagyok.
-
lanszelot
addikt
válasz
axioma #12076 üzenetére
Ennyi a kód.
Tanulok. Hogyan lehet változót használni ahelyett hogy én írom be.
Random generál egy számot 0-5 között.
Switch ezt a vectror image nevére át váltja.
Beilleszti az imageView-ba.
Telefonon megjelenik a kép.
Kész.
Semmit se csinál.Még csak most tanulom. Az én agyam nem úgy működik mint az atlagé. Nekem így kell tanulnom.
Tudom fura másoknak. -
lanszelot
addikt
válasz
axioma #12074 üzenetére
Először is köszönöm szépen a választ.
71 es sor - "cannot resolve symbol 'kockak' " hibát dob
Gondolom azért mert idézőjelben rakja be:
"four" nem pedig four.
De ezt csak gondolom.For ciklus azért nem jó, mert "imageView" 1-5 ig van, tehát a végén a számot változtatnom kellene, de azt se tudom hogy kell.
Csak azzal már nem akartam bővíteni a kérdéseim számát.69 sor már nem dob hibát, hogy adtam alap értéket.
Azt sikerült javítani.
"" Értéket adtam a létrehozásnál..Switch-ben a default -ot nem szeretem használni, mert sok galibát tud okozni. Volt már vele szerencsém. Így sokkal egyszerűbb a hibát megtalálni, ha nincs default
-
BE4GLE
aktív tag
válasz
axioma #11882 üzenetére
Nem értem mi igényel ebben olyan sok időt.
Az én tesztjeim nem szoktak olyan robosztus kódok lenni. Hiszen csak pár mock adat, fake hívás, és assert az egész. Viszont a teszt nélküli legacy kódok javítására borzalmasan sok idő megy el. A menet közben kiderülő döntések pedig mindenképpen megkavarják a dolgokat. Ez nem érv a TDD-vel szemben.
-
floatr
veterán
válasz
axioma #11875 üzenetére
Túl cinikus vagyok a TDD-hez
Az utóbbi években csak olyan agilis projektekben dolgoztam, ahol az agilitás leginkább arra vonatkozott, hogy menetközben találja ki a megrendelő, hogy mit is akar (vagy nem). A projektek óriási keretrendszereket használnak, amiben az egyes funkciók deklaratív elemeken keresztül automatikusan készülnek el. Ritka volt az, amikor nem változott hétről hétre a követelmény, és nagyon kevés része volt a kódnak az, amiben unit tesztre érdemes dolgok történtek.
Ha ilyen projektekre valaki rávág egy coverage kritériumot, mert az jól mutat, a teljes csapat egy emberként áll fel, és megy át a konkurenciához.
De hello ${username} példakódban piszkosul jól mutat... -
válasz
axioma #11100 üzenetére
"En tobb dologban nem ertek egyet a sonarlint-tel, de ettol me'g orulok hogy van, mert neha egyszeru teveszteseknel felhivja a figyelmet a potencialis hibara."
Akinek nem inge ne vegye magára, de én meg azt nem fogom soha megérteni, ha van egy tool aminek a célja a minőség javítása és igen népszerű akkor miért kell kiakadni ha valakinél esetleg jobban tudja a dolgokat? Én nem mondom azt, hogy nincs így de nem is értem ez.
"szornyek keletkeznek"
Én megint csak pont az ellentetjével találkoztam. Ha túl komplex egy metódus szól, hogy nagy. Szerintem ez pont jó. És az esetek 99%-ban igen, tudod még jobban fragmentálni a dolgokat.
Szerintem simán jó dolog, de tényleg, felőlem aki akarja használja aki nem nem. Én látok benne elég sok potenciált és tudást mögötte.
-
axioma
veterán
válasz
axioma #11074 üzenetére
"4*(3+sin(12))" -> a szamologepen ezt is ugy irod be leginkabb, hogy 12 sin +3, *4
Ha nagyon muszaj zarojelezest is tudni, akkor is ilyesmi:
4,* -> vissza 4
( -> vissza 0
3, + -> vissza 3
12, sin -> vissza sin(12)
) -> vissza 3+sin(12)
= -> vissza 4*(3+sin(12))
Tehat minden nem szamjegynel vagy 1 vagy 2 parametert kuldesz, ha volt szam akkor azt es a muveletet, ha nem, akkor csak a muveletet (zarojelet, akarmit).
Probald ki a windows tudomanyos szamologepben.
A nehezites a precedencia. De csak az osszeadas, szorzas eseten (max. ha kell hatvanyozas ott is). A sin() es mas 1-operandusu muvelet az mindig arra vonatkozik, amit epp kiir. -
-Faceless-
őstag
válasz
axioma #11071 üzenetére
Enyém minden frontend backend ahogy van.
Most hogy mondod igen ennek több értelme van. Én teljesen úgy gondolkodtam, hogy a műveleti mezőnek TextField-nek kell lennie, és ha mondjuk becopy-zod a "4*(3+sin(12))"-t akkor nincs gombnyomás ami mentén felosztod a műveleteket meg nyeljen le üres zárójelet ilyenek.
De akkor "csak" össze kellene foltoznom egy reguláris kifejezést amivel szétbontom, és műveleti sorrendben végigmegyek tömbbön.Semmis akkor a kérdés, csak évek óta nem csináltam ilyesmit, és túl későn este akartam hozzákezdeni. Inkább le is tagadom, hogy hozzákezdtem volna megy a letagadom kupacba.
-
#68216320
törölt tag
válasz
axioma #10732 üzenetére
Nagyon hasonlóan kezelném őket, de még csakbaz egyik van meg. A különbség köztük annyi lenne, hogy az egyik saját projecten belüli adatokkal jön létre, a másik külső (request) és egyben néhány másik adattal jön létre. A perzisztens rétegben is külön vannak tárolva. Ezen kívül közösen kezelem. Például együtt listázom, stb.
Ennek ellenére semmi akadálya nincs, hogy teljesen külön osztály legyen, hamár külön is tárolom őket.
-
Lortech
addikt
válasz
axioma #10670 üzenetére
Nem látom át teljesen a problémádat, a streamektől nem egyértelmű, hogy mi történik. Egy működő példa talán segítene, hogy pontosan lehessen vizsgálni, mire gondoltál.
Nekem úgy tűnik, hogy a lambdák type inference limitációjába ütköztél.
Néhány link, ami indulásnak jó lehet, Brian Goetz kommentjeit érdemes olvasni:
[link]
[link]
[link]
Ha nagyon beleásod magad, javac-vel debug paraméterezéssel (utolsó link) ki lehet vsz. deríteni, hogy mi történik pontosan. -
floatr
veterán
válasz
axioma #10355 üzenetére
Olyan diákból sosem lesz épkézláb szakmabeli, aki ennyire nem akar megcsinálni feladatokat. Teljesen mindegy milyen jegyet kap rá, magával cseszik ki. Ebben a szakmában pont nem a jegyek számítanak, hanem a hagyományos értelemben vett agilitás. Diákként magának kéne feladatokat kitalálni, nemhogy a kiadottakat is mással megoldatni
-
Drizzt
nagyúr
válasz
axioma #10244 üzenetére
Alapvetően probléma nincsen vele, de én inkább csinálnék egy másik mátrix típust(Matrix), ami teljesen a ProjMatrix implementációitól. És akkor nem lenne generikus a ProjMatrix interface, a getUnderlying helyett meg lenne egy Matrix getMatrix. És az egyes implementációknak lenne az az implementation detail-je, hogy a belső saját mátrixából hogyan fog mátrixot csinálni, factory-kal, különböző bemenő adatok alapján. Pl.: lenne egy ilyen a Matrix createMatrix(double[][] mtx), illetve valami más értelmes adat. A konstruálás paramétereit mindig az vezényelje, hogy milyen adataid lesznek ahol felhasználod ezt az interface-et.
Működni tökéletesen működni fog amit csináltál, viszont az nem fog nekem tetszeni, hogy a felhasználó kódnak végül mindenképpen tudnia kell a konkrét implementáló osztályokról, mert van olyan method az interface-ben, ami implementáció specifikus értéket vár/ad vissza. Így nem tudod pl.: ServiceLoaderrel betölteni az implementációkat, hanem minden új implementációnál újra kell majd fordítanod a kódot. Ami nem feltétlenül probléma, de egy megfontolandó dolog.
Ami sérül ebben az interface-ben, az a SOLID design elvekben a "dependency inversion principle". Nem jó practice, ha az interface felhasználója bármilyen specifikus dolgot kell tudjon az implementációból(esetedben az M típust).
-
axioma
veterán
válasz
axioma #10243 üzenetére
Na valahogy igy nez ki:
public interface ProjMatrix<M> {
public ProjMatrix(double[][] mtx);
public ProjMatrix(M mtx);
public M getUnderlying();
public ProjMatrix add(M mtx);
..
}
Es van harom megvalositas, ebbol ketto ketretegu, az Nd4j-s hasonlo ehhez:public class ApacheMatrix implements ProjMatrix<RealMatrix> {
private final RealMatrix underlying;
public ApacheMatrix(double[][] mtx){... underlying=new RealMatrix(mtx); ...}
public ApacheMatrix(RealMatrix mtx){ underlying=mtx; }
public RealMatrix getUnderlying() { return underlying; }
public ApacheMatrix add(RealMatrix other) { return new ApacheMatrix(underlying.add(other.getUnderlying());}
...Es en csinalnek egy ilyet:
public class FlatMatrix implements ProjMatrix<FlatMatrix> {
private final double[] data;
private final dataLen;
... // segedvaltozok
public FlatMatrix(double[][] mtx) { ....dataLen=...; data=new double[dataLen]; ...}
public FlatMatrix getUnderlying() { return this;}
public FlatMatrix add(FlatMatrix other) { ... }
...Persze ebben az esetben az underlying-gal nem lehet "szepen" konstrualni, az tulkepp egy masolas lesz, de ennek nem lenne jelentosege.
Csak fejbol kb. a lenyeg, lehet benne egyeb hiba, nem az szamit, hanem a konstrukcio osszessegeben mehet-e igy minden gond nelkul.Kosz!
-
Lortech
addikt
válasz
axioma #10211 üzenetére
Röviden: tényleg nincs.
Csinálhatsz generikus interface-t:
public interface IF1<T extends IF1> {
void add(IF1<T> other);
}
public class Imp1 implements IF1<Imp1> {
@Override
public void add(IF1<Imp1> Other) {
}
}
public class Imp2 implements IF1<Imp2> {
@Override
public void add(IF1<Imp2> other) {
}
}
{
IF1 impraw = new Imp2();
IF1<Imp1> impl1 = new Imp1();
IF1<Imp2> impl2 = new Imp2();
impraw.add(impraw);
impraw.add(impl1);
impraw.add(impl2);
impl1.add(impl1);
impl1.add(impraw);
impl2.add(impl2);
impl2.add(impraw);
pass(impraw, impl1);
pass(impl1, impraw);
pass2(impl2, impl1);
}
private static void pass(IF1<Imp1> one, IF1 other) {
one.add(other);
other.add(one);
}
private static void pass2(IF1 one, IF1 other) {
one.add(other);
other.add(one);
}De ez jobbára csak bohóckodás, mert ha használni akarod, úgyis meg kell adnod a típus paramétert fordítás időben, hogy garantáltan *csak saját magával tudd átadni neki, vagy típus paraméter nélkül hagyod és unchecked leszel. Valamint raw IF1 (impraw-t) IF1 példányt oda vissza tudod passzolgatni futási és fordítási hiba nélkül.
-
Lortech
addikt
válasz
axioma #10185 üzenetére
Lehet ilyeneken szörnyülködni, de ezek tudása / nem tudása pont nem mond el semmit arról, hogy az illető milyen szoftverfejlesztő.
Sok-sok interjún túl számtalan példát tudnék hozni, hogy ki mit nem tudott interjún, olyanok is akiket később felvettünk és tök jó kollégák lettek. Valószínűleg tőled is lehetne java témában 5/5-öt kérdezni, amit nem tudnál, ~mindenkitől. -
Cathfaern
nagyúr
Valószínűleg pontosan azért, mert valós programozási körülmények között nagyon ritka, hogy a fibonacci sorozat számításának az optimalizálása számít bármit
Csak gondolom ki akarták szűrni azokat, akiknek még az értő olvasás se megy, megy programkódot is csak akkor látták amikor átküldték neki fizetés után a beadandóra beküldendő programját.
-
Orionk
senior tag
Megvolt ez az interjú feladat.
Az N-edik Fibonacci számot kellett kiszámolni rekurzívan VAGY ciklussal. 20 perc volt rá. Csak a metódust kellett megírni.Kb. 12-15 perc alatt megcsináltam rekurzívan és egy kis körítés ként egy Java-s Main classba azért beletettem, ahol meghívódik ez a metódus. Hibátlan lett.
Aztán kérdezte a fejlesztő srác, hogy meg tudnám-e a metódust csinálni ciklussal. Ott annyi nem sikerült, hogy a for cikluson belül véletlenül elszámoltam, de már kevesebb időm volt hátra a ciklusos verzióra.
Remélem, hogy ez miatt még átmentem. 2 hét múlva lesz visszajelzés. -
nji
aktív tag
Az a gondom, hogy nem tanultam még javat és a szükséges algoritmusokat csak c-ben és c++-ban találtam meg és nem tudom átírni úgy, hogy működjön a processingben.
Csoporton belül nem tudok segítséget kérni, mert csak ketten vettük fel a tárgyat az egész évfolyamon és a másik diáktól már kérdeztem, de nem nagyon akar segíteni, mert ha hasonló lesz a megoldás, akkor mindketten megbukhatunk. Ezért érthető , hogy nem fogja megosztani a magoldását, amit lehet, hogy ő is valakivel megoldatott. -
nji
aktív tag
Mindegy hogy mit gondolsz, mert nem érdekel.
Aki segít az segít, ha meg nem tudsz segíteni, akkor minek szólsz bele és mit érdekel?
Gondolom Te mindig mindent segítség nélkül csináltál meg.
Amúgy meg elég érdekes ez a fórum, hogy szakmai hozzászólás egy sincs csak kötözködés. Tipikus magyar ugar.... -
nji
aktív tag
Helyettem nem kell elmenni vizsgázni, de levelezőn akkora fos az oktatás és emiatt keresek korrepetálásra tanárokat. Ha itt nem lehet ilyesmit, akkor hol máshol ? Olyan helyre (fórumra) lenne szükségem, amit nem 5-6 éve látogattak, mert pl. az index fórumon a processing több éve halott, néztem a logouton is, ott egyetlen egy hozzászólás volt 2011-ben, a processing.org fórumában meg senki nem tudja megoldani a feladatot.
De nekem nem az kell hogy csinálja meg helyettem ezt vagy azt hanem KORREPETÁLÁS!!! Sajnos évi 400 ezer Ft-os tandíjért nem jár megfelelő oktatás a levelezősöknek. Az iskolát inkább nem nevezem meg egyelőre, de ennyi pénzért többet várnék. -
#74220800
törölt tag
Ja maradt az arraylist, az a legkézenfekvőbb. De valamiért, a leadó system testje vmiert ezt a hibát írja ki:
Removed two elements but the second one had a lower priority than the first one! Amit nem értek. Amugy itt van a programom(class nevet most atneveztem):
import java.util.ArrayList;
public class MyPriorityQueue<T extends Comparable<T>> {
private ArrayList<T> queue;
private int maxElements;
public MyPriorityQueue(int maxElements){
this.maxElements = maxElements;
queue = new ArrayList<T>();
}
public void add(T e) throws IllegalStateException{
if( size() == maxElements)
throw new IllegalStateException("The queue is already full!");
queue.add(e);
int i = size()-1 ;
T help;
while ( i > 0 && ( queue.get( parent(i) ).compareTo( queue.get(i) ) ) > 0 ){
help = queue.get(i);
queue.set(i,queue.get( parent(i) ));
queue.set(parent(i), help);
i = parent(i);
}
}
public T pop() throws IllegalStateException{
if(queue.isEmpty())
throw new IllegalStateException("The queue is empty!");
T min = queue.get(0);
queue.remove(0);
minheapify(0);
return min;
}
public int size(){
return queue.size();
}
public int parent(int i){
return (i - 1) / 2;
}
public void minheapify(int i){
int l = i*2+1;
int r = l+1;
int min;
T help;
if (l <= size()-1 && ( queue.get(l).compareTo( queue.get(i) ) ) < 0 )
min = l;
else
min = i;
if (r <= size()-1 && ( queue.get(r).compareTo( queue.get(min) ) ) < 0)
min = r;
if (min != i){
help = queue.get(i);
queue.set(i,queue.get(min));
queue.set(min, help);
minheapify(min);
}
}
public void display(){
for(int i = 0; i < queue.size(); i++) {
System.out.print(queue.get(i) + " ");
}
}
} -
bucsupeti
senior tag
egyetértek veled!
Egyébként én magam kiteszem mindig a { } jeleket, még akkor is ha csak egyetlen utasítás van az adott blokkban (mint pl itt az if szerkezet).
Valahogy így:for(int i=0;i<MAX; i++) {
if (i>MIN) {
System.out.println("Alma");
} else {
System.out.println("Körte");
}
} -
tick
aktív tag
Köszönöm szépen a választ pont így oldottam meg végül a 2-es pont problémáját.
Nem házi feladat, de nem is komoly dolog. Szükséges valahogy tárolnom az user-pass kombót. Nem szerettem volna plain textként így jött az AES + bináris amit egy egyéni key/pin véd. Ha valaki elég ügyes hogy kiszedje/feltörje, akkor sincs kockázat. -
tick
aktív tag
AES128 bit kulcsot szeretnék generálni String input alapján. A String hossza bármi lehet. A függvény a következőt csinálná:
-Ha a String 16 karakter akkor nincs teendő
-Ha több mint 16 karakter akkor ArrayUtils.subArray(key.toCharArray(), 0, 16) majd ezt a végén vissza String-gé
-Ha kevesebb mint 16 karakter (N hosszú), akkor key.toCharArray(), egy új CharArray-be N-ig a key értékei, azon felül pedig egy karakter. A példában "c".Így minden esetben 16 karakter hosszú kulcsot kapok. Ez működik is (String.valueOf-fal). Viszont nem 128 bit lesz a végeredmény.
16 vagy több karakterrel működik hibátlanul. A probléma akkor keletkezik ha ki kell egészíteni plusz karakterekkel: Invalid AES key length: 28 bytes
Jelenleg sysout esetén nem is a key-t kapom meg, hanem a referenciáját.String pin = "1234";
...
...
// így fut le ha 16-nál rövidebb a pin
String[] keyArr = new String[16];
pinArr = pin.toCharArray();
for(int i=0;i<pin.length();i++) {
keyArr[i] = String.valueOf(pinArr[i]);
}
for(int i = pin.length();i<16;i++) {
keyArr[i] = "c";
}
key = String.valueOf(keyArr);
System.out.println(key); // String helyett reference
Key aesKey = new SecretKeySpec(key.getBytes(), "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, aesKey); // java.security.InvalidKeyException: Invalid AES key length: 28 bytes
byte[] encrypted = cipher.doFinal(password.getBytes()); -
Sk8erPeter
nagyúr
Na várj, sztem senki nem mondta, hogy nincs szükség komoly elméleti alapozásra (persze ezt is ésszel kéne, gyakran ez sem elmondható), inkább arról van szó, hogy először meg kéne egyáltalán hozni az egész programozáshoz a kedvedet, nem pedig elvenni azt (akár egy egyetemi/OKJ-s/akármilyen képzésről van szó, akár egy könyvről), értelmes módon kellene vegyíteni a gyakorlati alapismereteket az elméleti háttérrel, de valahogy ez a legtöbbször átcsap abba, hogy kőkeményen nyomatjuk az elméleti bullshitet, hogy legyen mit jól számonkérni, aztán inkább csak úgy mellesleg vannak gépes laborok is, ahol ledarálják, ami kell (elavult eszközök rulez), ha nincs előképzettséged, így jártál, aztán mennek a következő anyagra, csak pörgessük ki a kötelező számonkérhető anyagot. Természetesen ettől még vitathatatlan, hogy saját szorgalom nélkül úgysem fog senki megtanulni programozni, de nem mindegy, hogyan lökdösnek előrébb, vagy csak tömik az agyadat olyannal, amitől csak összevisszaság lesz a fejedben. Ahogy észrevettem, ez nagyon általános probléma.
BME-n azóta szerencsére látok némi javulást az elsősöknek leadott anyagban, ahogy nézegettem a honlapokat. Amikor én jártam prog1-re, elég borzalmas volt a helyzet. Amúgy a kedvencem az volt, amikor az előadó a perifériákról beszélt, hogy hű de jó, hogy van a billentyűzet, meg az egér, 1 perc múlva meg egy C-ben írt kódot mutogatott. -
caindwan
aktív tag
a facebook-os és a google jam is tetszik
Egy kis gyakorlással lehet nevezek is, szerencsére az előbbi csak szeptemberben van. A feladataik pedig nagyon is megfelelnek.
a ch 24-ben is vannak jó feladatok. A könyvet sajnos nem találtam elektronikus formában, marad csak az alternatíva 3D
-
floatr
veterán
Alapvetően üzleti logikára koncentrálok a legtöbbször. Nekem kifejezetten jó, ha nullptr van, mert az exception megszakítja a tranzakciókat. Ha optional-t használnék akkor egy if-ben kéne eldobni a kivételt. A kapcsolódó rétegben try-catch néha szokott lenni, de legtöbbször azt is rábízom a konténer hibakezelésére, amit delegálok egy konkrét komponensnek. Ehhez képest az optional csak gurigázás a pamutgombolyaggal
Nem mondom, néha jobb választás lehet, mivel a kivételek kezelése nem feltétlenül cél. Ilyenkor a mechanizmus teljesítménye jobb tud lenni egy if-else megoldással, de ez inkább szépészeti megoldás. Ha valakinek ez problémát okoz, akkor el tudom képzelni ahogy egy merészebb JS frameworktől kifolyik a szeme.
-
Aethelstone
addikt
Üzleti logika szempontjából az üres lista pont annyit ér, mint a null referenciával rendelkező. Viszont üres lista esetén le tudod spórolni az if (list!=null&&!list.isEmpty()) vizsgálatot egy sima list.isEmpty()-vel, sőt iterátor for ciklusban sem fog szétszállni nullpointerexceptionnal.
Egyébként jelen pillanatban egy kézenfekvő, bár kurvára idegesítő megoldása lenne a problémának, ha a nullpointerexception nem runtime lenne, hanem checked. Persze, az összes, jelenlegi kód összefosná magát tőle
-
Aethelstone
addikt
Tervezési minta kérdése.
Pl. ha List<?> a visszatérési típus, akkor ugyan fektessük már le, hogy ha üres, akkor nem null, hanem pl. new ArrayList<?>() és így tovább. Vagy pl. default értékek használata a privát propertyk esetén és sorolhatnám.
Sokan nem szeretik az ilyen kvázi felesleges tervezési mintákat, hanem a compilertől várják, hogy a slendrián kódokat tegye helyre...alapvetően sok igazságuk van, de ugyan, az emberi hülyeséget miért kellene már javítani?
Kedvencem egyébként, amikor pl. C-ben vagy Pascalban szól a compiler, hogy hiányzik a ";". Bassza meg, akkor rakja oda, ne dumáljon, az miért nem zavar senkit?
Az a baj, hogy a konkrét problémában valamit mindenképpen vizsgálni kell. A null az valóban rendszeridegen, egy olyan kvázi mittoménmilyen érték, aminek semmi köze az üzleti logikához.
-
-
Aethelstone
addikt
Azt hianyolom, ami az abstract fuggveny vgy interface lenyege lenne, hogy ha barki kesobb ujat letrehoz, akkor lassa hogy kotelezo ezt is definialnia.
Ezt úgy hívják, hogy fejlesztői dokumentáció.
Egyébként ha tényleg marhául el akarod bonyolítani, csinálhatsz saját annotációt pl. és azt még példányosítás előtt Reflectionnal tudod vizsgálni....bár a problémát, amit felvetettél, én sem értem 100%-ban. -
Szmeby
tag
Nem nagyon értem, hogy mi lesz ebből, de a statikus metódus helyett nincs jobb megoldás?
Azt írod, hogy vannak adatok, amelyeknek már a memóriadarabka (?) példányosítása előtt rendelkezésre kell állnia.
Na de ezeket az adatokat egy egyszerű leíró osztályban is összegyűjtheted, nem? Csinálsz egy immutable POJO-t, benne a méret meg amit akarsz, és teszemazt memóriadarabka konstruktor argumentumaként beküldöd a már adatokkal feltöltött leíró objektumot. Amit aztán a példányok kedvükre használhatnak.
A konstruktor argumentum miatt kötelezővé válik... már ha nincs másik konstruktor, ami viszont nélküle is elvan.
Vagy ha nem akarod "szennyezni" a konstruktort nem oda való argumentummal, esetleg már osztálybetöltéskor szükséged van az infóra, akkor be is injektálhatod ezt a leíró objektumot egy statikus mezőre. Készíthetsz hozzá egy factory-t, ami valami alapján tudja, hogy melyik leírót példányosítsa, hogyan inicializálja, durván el lehet bonyolítani a dolgot.
Bár akkor megint ott vagyunk, hogy hogyan kényszeríthető ki a kötelezőség. Ahh, nem bírom a statikus dolgokat, sok a kötöttség.Persze lehet, hogy hülyeséget beszélek, mint mondtam, nem értem a problémát.
-
axioma
veterán
Elolvastam, a logikajat ertem. Vegulis ha nem tudom elkerni a generaciohoz tartozo classt magat (ezt is max. egy map-pel esetleg tombbel lehetne, de akkor mar egyszerubb egy switch-es getter az absztraktban), akkor ugyse tudom a static-jat hivni... szoval marad igy, tulkepp hasznalati szempontbol hulyeseget akartam, mert en csak a karbantartasra koncentraltam.
-
Szmeby
tag
"Azt hianyolom, ami az abstract fuggveny vgy interface lenyege lenne, hogy ha barki kesobb ujat letrehoz, akkor lassa hogy kotelezo ezt is definialnia."
Itt most arról beszélsz, hogy egy leszármazott osztálynak kötelező implementálnia az ősben absztraktként jelölt metódust? Vagy valami mást értesz "létrehozás" alatt?És ezt akarod static metódusokkal kivitelezni?
Ez esetben az overriding és hiding közti eltérés a magyarázat a kérdésedre.
-
WonderCSabo
félisten
Ez egy proof of concept kód volt.
Egyelőre egy db - egy kezelőosztály, de ez valóban problémát okozna itt.
A két mapet csak belehánytam, a singleton miatt valóban lehetne a counter a példányban.
A példányt ki kell dobni, ennél a cuccnál legalábbis ha már bezártál egy példányt, újból nem nyithatod meg. -
Oppenheimer
nagyúr
Én beleegyeztem a reklámokba, de amint jön egy, teszem is rá a spam szűrőt. De talán nem is kötelező azokat bepipálni, csak elég megcsinálni a swipe mozdulatot annál a csúszkánál. Nekem nem esett le időben, hogy miért nem tudok a Regisztráció befejezésére kattintani, ezért pipáltam ki mindent, és csak utána láttam meg a csúszkát. Aztán már lusta voltam kivenni a pipát.
CV-t nem töltöttem fel. Nem hinném, hogy akkora guru lennék másodéves egyetemistaként hogy állásajánlatot kapjak tőlük.
Egyébként már Rájöttem hogy kell a master-slave viszonyt kezelni.
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Samsung Galaxy S21 FE 5G - utóirat
- Kerékpárosok, bringások ide!
- Autós topik látogatók beszélgetős, offolós topikja
- Milyen TV-t vegyek?
- Spórolós topik
- Steam Deck
- Gamepad
- Egyre csak fejlődik az AI, emberek tízezreit rúgja majd ki a BT
- Építő/felújító topik
- Milyen okostelefont vegyek? OFF topik
- További aktív témák...
- i5-13600KF, RX 9070, DDR5 32GB, 1 TB M.2, Fractal North TG és sok garancia
- Logitech Combo Touch iPad Pro 11" (1., 2. a 3. gen), szürke - UK billentyűzet ipad tok billentyűzet
- újszerű iPad Pro 11" (3. generációs) (2021) M1 chip Wi-Fi 128GB silver ezüst Apple
- szinte új iPhone 16 Pro Max 256GB desert titanium sivatagi titán független Apple 3 év garancia
- újszerű iPhone 16 Pro 256GB white titanium fehér titán iStyle független Apple 3 év garancia
- TP-Link Archer C1200 Router eladó (1200 Mb/s Wi-Fi)
- Telenor 5G Indoor WiFi Router (FA7550) + töltő (bolti áruk 100.000Ft)
- BESZÁMÍTÁS! MSI Crosshair 17 HX Gamer notebook - i7 14700HX 64GB RAM 1TB SSD RTX 4060 8GB WIN11
- Huawei Nova Y90 128GB, Kártyafüggetlen, 1 Év Garanciával
- ASUS TUF Gaming F16 FX607JV-QT212 Notebook
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest