Inhaltsverzeichnis
Einzigartige Funktionen von Verpackungsklassen
In aufsteigender Reihenfolge sortieren
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)