1 Was ist das?
Wenn es beispielsweise ein 11 * 11 Backgammon-Brett gibt und wir es mit einem Programm simulieren möchten, muss es ein zweidimensionales Array sein. Verwenden Sie dann 1, um den schwarzen Stein darzustellen, und 2, um den weißen Stein darzustellen, wenn es nur einen schwarzen Stein und einen weißen Stein auf dem Schachbrett gibt, dann gibt es in dieser zweidimensionalen Anordnung nur eine 1 und eine 2 und die anderen sind bedeutungslose Nullen, die keine Schachfiguren darstellen, wie folgt:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ……
Wenn die meisten Elemente in einem Array 0 sind oder denselben Wert haben, können Sie ein Sparse-Array verwenden, um das Array zu speichern . Warum das tun? Weil es Platz sparen kann.
2. Wie verwende ich?
Zeichnen Sie auf, wie viele Zeilen, Spalten und wie viele verschiedene Werte es im ursprünglichen Array gibt
#🎜🎜 ##🎜🎜 #Zeichnen Sie die Zeilen, Spalten und Werte von Elementen mit unterschiedlichen Werten in einem kleinen Array auf. Dieses kleine Array wird als Sparse-Array bezeichnet
Das vorhandene 6 * 7-Originalarray ist wie folgt:
0 0 0 22 0 0 15 0 11 0 0 0 17 0 0 0 0 -6 0 0 0 0 0 0 0 0 39 0 91 0 0 0 0 0 0 0 0 28 0 0 0 0
Zuerst, die erste Zeile und Die erste Spalte des Sparse-Arrays dient dazu, aufzuzeichnen, wie viele Zeilen das Elementarray hat. Die erste Zeile und die zweite Spalte zeichnen auf, wie viele Spalten das ursprüngliche Array hat, und die erste Zeile und die dritte Spalte zeichnen auf, wie viele verschiedene Werte das Original hat Array hat (außer 0). Eine Zeile des Sparse-Arrays sollte also wie folgt aussehen:
行 列 值 6 7 8
Beginnend mit der zweiten Zeile des Sparse-Arrays zeichnet jede Zeile die Zeile, Spalte und Wertgröße des Nicht-0-Werts im ursprünglichen Array auf . Wenn die zweite Zeile beispielsweise die Zeile, Spalte und den Wert von 22 im ursprünglichen Array aufzeichnen soll, lautet die zweite Zeile des Sparse-Arrays:
行 列 值 0 3 22
Verwenden Sie dann diese Methode, um 15 aufzuzeichnen , 11, 17, -6, 39 , 91, 28 verwandte Informationen, sodass das aus dem ursprünglichen Array schließlich konvertierte Sparse-Array lautet:
行 列 值 6 7 8 0 3 22 0 6 15 1 1 11 1 5 17 2 3 -6 3 5 39 4 0 91 5 2 28
Auf diese Weise wird ein 6 * 7-Array in ein umgewandelt 9 * 3-Array, um den Komprimierungseffekt zu erzielen.
4. Ideen zum Konvertieren von Original-Arrays und Sparse-Arrays:Original-Array in Sparse-Array:
# 🎜🎜#
Durchlaufen Sie das zweidimensionale Array, um die Anzahl der gültigen Arrays zu ermitteln.- Sie können ein spärliches Array basierend auf der Anzahl erstellen ;
-
Gültiges Array im Sparse-Array speichernint[count + 1][3]
- Sparse-Array in ursprüngliches Array: # 🎜🎜#
Anhand der ersten Zeile des Arrays können Sie ermitteln, wie viele Zeilen und Spalten das ursprüngliche Array hat, und dann das Array erstellen ursprüngliches Array;
#🎜 🎜#- Lesen Sie das Array der letzten Zeilen des Sparse-Arrays und weisen Sie es dem ursprünglichen Array zu
5. Code tatsächlich Fuck:
public class SparseArray { public static void main(String[] args){ // 创建一个 11 * 11的原始数组 int[][] arr1 = new int[11][11]; arr1[1][2] = 1; arr1[2][3] = 2; // 原始数组转稀疏数组 // 1. 遍历,得到非0数据的个数以及所在的行列 int count = 0; Map<string> map = new HashMap(); for (int i = 0; i Der obige Code realisiert die gegenseitige Konvertierung zwischen Original-Array und Sparse-Array und die Programmleistung verbessern. <p><strong></strong></p></string>
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie das ursprüngliche Array in ein Sparse-Array in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

In dem Artikel werden Maven und Gradle für Java -Projektmanagement, Aufbau von Automatisierung und Abhängigkeitslösung erörtert, die ihre Ansätze und Optimierungsstrategien vergleichen.

In dem Artikel werden benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning- und Abhängigkeitsmanagement erstellt und verwendet, wobei Tools wie Maven und Gradle verwendet werden.

In dem Artikel wird in der Implementierung von mehrstufigem Caching in Java mithilfe von Koffein- und Guava-Cache zur Verbesserung der Anwendungsleistung erläutert. Es deckt die Einrichtungs-, Integrations- und Leistungsvorteile sowie die Bestrafung des Konfigurations- und Räumungsrichtlinienmanagements ab

In dem Artikel werden mit JPA für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden erläutert. Es deckt Setup, Entity -Mapping und Best Practices zur Optimierung der Leistung ab und hebt potenzielle Fallstricke hervor. [159 Charaktere]

Mit der Klassenbelastung von Java wird das Laden, Verknüpfen und Initialisieren von Klassen mithilfe eines hierarchischen Systems mit Bootstrap-, Erweiterungs- und Anwendungsklassenloadern umfasst. Das übergeordnete Delegationsmodell stellt sicher


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft