suchen
HeimJavajavaLernprogrammSo konvertieren Sie das ursprüngliche Array in ein Sparse-Array in Java

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
3, Fall:

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
  • ;
  • int[count + 1][3]

    Gültiges Array im Sparse-Array speichern
  • 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!

Stellungnahme
Dieser Artikel ist reproduziert unter:亿速云. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?Mar 17, 2025 pm 05:46 PM

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.

Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Wie erstelle und verwende ich benutzerdefinierte Java -Bibliotheken (JAR -Dateien) mit ordnungsgemäßem Versioning und Abhängigkeitsmanagement?Mar 17, 2025 pm 05:45 PM

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.

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?Mar 17, 2025 pm 05:44 PM

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

Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Wie kann ich JPA (Java Persistence-API) für Objektrelationszuordnungen mit erweiterten Funktionen wie Caching und faulen Laden verwenden?Mar 17, 2025 pm 05:43 PM

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]

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?Mar 17, 2025 pm 05:35 PM

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

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft