Sobes.tech
Junior

Mis on Wrapper klassid Java's?

sobes.tech AI

Vastus AI-lt

Java Wrapper klassid on klassid, mis pakuvad primitiivsete andmetüüpide objektipõhist esitust. Need võimaldavad kasutada primitiivseid väärtusi olukordades, kus nõutakse objekte, näiteks kogudes või mitme niidiga töötamisel.

Peamised Wrapper klassid:

  • Byte
  • Short
  • Integer
  • Long
  • Float
  • Double
  • Boolean
  • Character

Kasutusnäited:

primitiivide kasutamine:

// primitiivtüüp
int x = 10;

Wrapper klassi kasutamine:

// Wrapper klass
Integer y = new Integer(20); // Vana meetod
Integer z = 30; // Autoboxing (automaatne primitiivide konverteerimine objekti)

Vahet primitiivide ja Wrapper objektide vahel:

  • Autoboxing: primitiiv automaatselt konverteeritakse Wrapper objektiks.
    // Autoboxing
    int primitiveInt = 100;
    Integer wrapperInt = primitiveInt;
    
  • Unboxing: Wrapper objekt automaatselt konverteeritakse primitiiviks.
    // Unboxing
    Integer wrapperInteger = new Integer(200);
    int primitiveInteger = wrapperInteger;
    

Wrapper klasside eelised:

  • Töö kogudes: kogud (List, Set, Map) hoiavad ainult objekte.
  • Töö null-idega: Wrapper objektidel võib olla väärtus null, erinevalt primitiivsetest.
  • Kasulikud meetodid: Wrapper klassidel on meetodid stringide teisendamiseks, väärtuste võrdlemiseks jms. Näiteks Integer.parseInt(String s).
  • Töö generikutega: generikud töötavad ainult objektidega.

Puudused:

  • Mälu kasutus: Wrapper objektid võtavad rohkem mälu kui primitiivsed tüübid.
  • Töökiiruse langus: automaatne paki- ja väljapakkimine võib veidi vähendada jõudlust.

Näide kogus:

import java.util.ArrayList;
import java.util.List;

public class WrapperExample {
    public static void main(String[] args) {
        List<Integer> numbers = new ArrayList<>();
        numbers.add(10); // Autoboxing
        numbers.add(new Integer(20)); // Objekti loomine

        int firstNum = numbers.get(0); // Unboxing
        System.out.println(firstNum);
    }
}