Junior
Hogyan lehet összehasonlítani az alapvető adattípusokat egymással?
sobes.tech MI
Válasz az MI-től
A Java primitív adattípusokat értékük szerint összehasonlítják összehasonlító operátorok segítségével:
==(egyenlőség)!=(különbözőség)>(nagyobb)<(kisebb)>=(nagyobb vagy egyenlő)<=(kisebb vagy egyenlő)
// Egész számok összehasonlítása
int x = 10;
int y = 20;
boolen isEqual = (x == y); // false
boolen isGreater = (x > y); // false
// Lebegőpontos számok összehasonlítása
double a = 3.14;
double b = 3.14;
boolen areEqualDoubles = (a == b); // true (pontosan értékek esetén)
// Karakterek összehasonlítása
char c1 = 'A';
char c2 = 'B';
boolen isCLessThanC2 = (c1 < c2); // true
// Boolean típus összehasonlítása
boolen flag1 = true;
boolen flag2 = false;
boolen areFlagsEqual = (flag1 == flag2); // false
Fontos megjegyezni, hogy lebegőpontos számok (float, double) összehasonlásakor a == használata pontatlan lehet a számok memóriában való reprezentációja miatt. Ilyen esetekben az elfogadható egyenlőség ellenőrzéséhez az abszolút különbség kicsi, előre meghatározott értékhez viszonyított összehasonlítása javasolt (epsilon).
double val1 = 0.1 + 0.2; // valójában nem pontosan 0.3 a pontosság miatt
double val2 = 0.3;
double epsilon = 1e-9; // Kicsi tolerancia
// Pontatlan módszer
boolean incorrectEquality = (val1 == val2); // lehet, hogy false
// Ajánlott módszer lebegőpontos számok összehasonlítására
boolean correctEquality = (Math.abs(val1 - val2) < epsilon); // true