Sobes.tech
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