Java-Wrapper-Klassen und Arrays-Klassen (ausführliche Erklärung)

Inhaltsverzeichnis

Verpackung

Funktionseinführung

Einzigartige Funktionen von Verpackungsklassen

Arrays-Klasse

Arrays.fill() 

Arrays.toString() 

Arrays.sort()

In aufsteigender Reihenfolge sortieren

Absteigend sortieren

Arrays.equals()

Arrays.copyOf()

Arrays.binarySearch()

Verpackung

Funktionseinführung

Die Wrapper-Klasse ist eigentlich der Referenztyp, der den 8 Basisdatentypen entspricht.

Grundlegende Datentypen Referenzdatentyp
Byte Byte
kurz Kurz
int Ganze Zahl
lang Lang
verkohlen Charakter
schweben Schweben
doppelt Doppelt
Boolescher Wert Boolescher Wert

Warum braucht man Wrapper-Klassen?

Um zu erkennen, dass alles ein Objekt ist, stellt Java entsprechende Referenztypen für 8 Grundtypen bereit.

Tatsächlich können spätere Sammlungen und Generika nur Verpackungstypen und keine grundlegenden Datentypen unterstützen.

Autoboxen :

Daten und Variablen von Basistypen können direkt Variablen von umhüllten Typen zugewiesen werden.

public static void main(String[] args) {
    int num1 = 10;

    // 自动装箱(将int基本数据类变量赋值给包装类型变量)
    Integer a = num1;
    System.out.println(a);
}

Automatisches Auspacken :

Variablen vom Wrapper-Typ können Variablen vom Basisdatentyp direkt zugewiesen werden.

public static void main(String[] args) {
    Integer num2 = 100;

    // 自动拆箱(将包装类型变量赋值给基本类型变量)
    int b = num2;
    System.out.println(b);
}

Einzigartige Funktionen von Verpackungsklassen

Der Standardwert der Variablen der Wrapper-Klasse kann null sein, was fehlertoleranter ist, der Basistyp jedoch nicht.

public static void main(String[] args) {
    Integer num3 = null;
}

Sie können Basistypdaten in String-Typen konvertieren (nicht sehr nützlich)

  • Rufen Sie die Methode toString() auf, um das String-Ergebnis zu erhalten.
  • Oder rufen Sie Integer.toString (Basistypdaten) auf.
public static void main(String[] args) {
    Integer number = 100;
    // 方式一
    String result1 = number.toString();
  	// 方式二
  	String result2 = Integer.toString(101);
    // 方式三: 最简单常用
    String result3 = number + "";
  
    System.out.println(result1 + 1); // 1001
    System.out.println(result2 + 1); // 1011
    System.out.println(result3 + 2); // 1002
}

Kann String-Typ-Werte in echte Datentypen konvertieren (sehr nützlich)

  • teger.parseInt("Ganzzahl vom String-Typ")
  • Double.parseDouble("Dezimalzahl vom Typ string").
 String st1 = "123";
 String st2 = "12.123";
 int a = Integer.parseInt(st1);
 double b = Double.parseDouble(st2);
 System.out.println(a+1);//124
 System.out.println(b+1);//13.123

Um Zahlen vom Typ String in echte Daten umzuwandeln, können wir auch die Methode valueOf der Wrapper-Klasse aufrufen

public static void main(String[] args) {
    String strNum1 = "123";
    String strNum2 = "12.123";

    // 字符串转整数
    int intNum = Integer.valueOf(strNum1);
    // 字符串转小数
    double doubleNum = Double.valueOf(strNum2);

    System.out.println(intNum + 1); // 124
    System.out.println(doubleNum + 1); // 13.123
}

Arrays-Klasse

Arrays.fill() 

Legen Sie bei einem bestimmten Wert val fest, dass die Elemente im gesamten Array oder innerhalb eines bestimmten tiefgestellten Bereichs val sind.

 int [] a = new int[10];
 int [] b = new int[8];
 Arrays.fill(a,3);
 Arrays.fill(b,3,7,6);
 for(int x : a)
    System.out.print(x+",");
 System.out.println();
 for(int x : b)
    System.out.print(x+",");

  

Arrays.toString() 

Array-Inhalte schnell ausgeben, aber die Ausgabe ist mit [ ] markiert

int[] a = {1,2,3,4,5};
System.out.println(Arrays.toString(a));
// 输出格式:[1,2,3,4,5]

Arrays.sort()

In aufsteigender Reihenfolge sortieren

Array-Sortierfunktion, standardmäßig aufsteigende Reihenfolge

int[] a = new int[5]{5,4,3,2,1};
Arrays.sort(a); // 1 2 3 4 5
System.out.println(Arrays.toString(a));
// [1,2,3,4,5]

Zwei Überladungsmethoden:

1.Arrays.sort (Array-Name)

2.Arrays.sort (Array-Name, Startkoordinaten, Sortierlänge)

Beim Sortieren von Zeichenfolgen wird, genau wie in C+, in lexikografischer Reihenfolge sortiert.

Absteigend sortieren

Um eine absteigende Sortierung zu implementieren, können Sie Collections.reverseOrder() verwenden oder Typarrays umbrechen

Keine Verpackung

Arrays.sort(a, Collections.reverseOrder());

Paket

 Integer[] a = {1,4,3,2,5,6,2,3,4};
 Arrays.sort(a,((o1, o2) -> o2 - o1));
 System.out.println(Arrays.toString(a));
 // [6, 5, 4, 4, 3, 3, 2, 2, 1]

Arrays.equals()

Vergleicht, ob die Inhalte zweier Arrays gleich sind

int[] a = {1,2,3};
int[] b = {1,2,3};
boolean isSame = Arrays.equals(a,b);
//true

Hinweis: Arrays.equals() vergleicht Array-Inhalte, während die Methode a.equals(b) Adresswerte vergleicht.

Besonderer Hinweis: Beim Vergleich des Arrays a==b in Java sind die Adressen der beiden

Wenn Sie in Zukunft den von Java bereitgestellten Referenzdateninhalt (Array, String, verschiedene Sammlungen ...) verwenden, müssen Sie die Methode equal() verwenden, um zu vergleichen, ob der Inhalt gleich ist, anstatt dummerweise == zu verwenden! Weil der Beamte equal() umgeschrieben hat. Wenn Sie selbst geschriebene Kurse vergleichen möchten, z. B. nach Noten sortierte Schüler, müssen Sie die Methode equal() selbst überschreiben.

Arrays.copyOf()

Zwei Wege:

1.B Array = Arrays.copyOf(A Array, Zuweisungslänge)

 int [] a = new int[10];
 int [] b;
 Arrays.fill(a,10);
 b = Arrays.copyOf(a,11);//超过赋值长度赋值为0
 System.out.println(Arrays.toString(b));
 //[10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 0]

2.  B-Array = Arrays.copyOfRange(A-Array, Startkoordinaten, Abfanglänge)

int [] a = new int[10];
int [] b;
Arrays.fill(a,10);
b = Arrays.copyOfRange(a,2,5);
System.out.println(Arrays.toString(b));
//[10, 10, 10]

Arrays.binarySearch()

Suchen Sie nach dem angegebenen Wert im Array. Wenn gefunden, wird der Index dieses Werts zurückgegeben.

Wenn nicht gefunden, geben Sie -insertion point-1 zurück (muss ein negativer Wert sein);

int[] a = {1,5,6,7};
Arrays.binarySearch(a,2)  //没找到,插入点为1,则返回 -2
Arrays.binarySearch(a,4)  //没找到,插入点为1,则返回 -2
Arrays,binarySearch(a,8)  //没找到,插入点为4,则返回 -5
Arrays.binarySearch(a,5)  //找到了!返回下标 1
只要返回值 ≥ 0 ,就代表找到了。

Empfohlene Musik: Es war einmal von Hand geschrieben

Referenz: Allgemeine Methoden der Java Basic Arrays-Klasse    Arrays (sehr ausführliche Erklärung)

Ich denke du magst

Origin blog.csdn.net/weixin_74088105/article/details/132624014
Empfohlen
Rangfolge