Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Map Mit Anderen Datenstrukturen | Beherrschung von Map in Java
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Java Datenstrukturen

bookMap Mit Anderen Datenstrukturen

Im Allgemeinen gibt es nicht viel mehr über Maps zu sagen. Die Information, dass es sich um eine Datenstruktur handelt, die Daten nach dem Schlüssel-Wert-Prinzip speichert, ist ausreichend. Aber was ist, wenn Sie ein kleines Abenteuer wagen und eine Datenstruktur wie eine ArrayList als Wert in der Map speichern möchten?

Datenstrukturen als Werte in einer Map speichern

Vielleicht gibt es zu wenige Kollisionen in der HashMap, und Sie möchten Daten auf eine noch ungewöhnlichere Weise speichern.

Main.java

Main.java

copy
1234567891011121314151617181920212223242526
package com.example; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Main { public static void main(String[] args) { List<String> marketingDepartment = new ArrayList<>(); marketingDepartment.add("Michael"); marketingDepartment.add("Alice"); marketingDepartment.add("Jimmy"); List<String> developerDepartment = new ArrayList<>(); developerDepartment.add("Bob"); developerDepartment.add("John"); developerDepartment.add("Ryan"); Map<String, List<String>> company = new HashMap<>(); company.put("Marketing", marketingDepartment); company.put("Development", developerDepartment); System.out.println("Company: " + company); } }

Hier ist ein Beispiel für das Erstellen einer Datenstruktur, die Informationen über ein bestimmtes Unternehmen speichert. Dieser Ansatz wird manchmal bei der Arbeit mit Datenbanken verwendet, jedoch sollte er nicht übermäßig eingesetzt werden, da das Abrufen von Daten aus solchen Datenstrukturen herausfordernd sein kann. Angenommen, wir möchten den Vermarkter an Index 1 abrufen.

Main.java

Main.java

copy
1234567891011121314151617181920212223242526272829
package com.example; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Main { public static void main(String[] args) { List<String> marketingDepartment = new ArrayList<>(); marketingDepartment.add("Michael"); marketingDepartment.add("Alice"); marketingDepartment.add("Jimmy"); List<String> developerDepartment = new ArrayList<>(); developerDepartment.add("Bob"); developerDepartment.add("John"); developerDepartment.add("Ryan"); Map<String, List<String>> company = new HashMap<>(); company.put("Marketing", marketingDepartment); company.put("Development", developerDepartment); System.out.println("Company: " + company); String marketerAtIndexOne = company.get("Marketing").get(1); System.out.println("Marketer at index 1 is: " + marketerAtIndexOne); } }

Auf den ersten Blick scheint es nicht kompliziert. Es ist lediglich erforderlich, die Methode noch einmal zu verwenden. In der Programmierung ist es jedoch entscheidend, das Hardcoding zu vermeiden.

Hardcodierung ist problematisch und sollte in jeder Hinsicht vermieden werden. Im Folgenden wird ein Beispiel mit Hardcodierung gezeigt, das anschließend gemeinsam verbessert wird:

Main.java

Main.java

copy
123456789101112
package com.example; public class Main { public static void main(String[] args) { // Hardcoded value double price = 49.99; // Using hardcoded value double discountedPrice = price * 0.8; // 20% discount System.out.println("Discounted Price: " + discountedPrice); } }

Wie zu sehen ist, gibt es im obigen Code eine Hardcodierung. Beim Festlegen des Rabatts wird eine einfache Zahl verwendet. Dieser Rabatt sollte in einer Variablen gespeichert werden, um den Wert später wiederverwenden zu können. Im Folgenden wird der obige Code verbessert:

Main.java

Main.java

copy
12345678910111213
package com.example; public class Main { public static void main(String[] args) { // Using variables instead of hardcoding double price = 49.99; double discountPercentage = 0.2; // 20% discount // Using variables double discountedPrice = price * (1 - discountPercentage); System.out.println("Discounted Price: " + discountedPrice); } }

Auf diese Weise erhält man eine Variable mit dem Rabattwert, und in einem großen Programm in der Zukunft müsste man nur den Wert dieser einen Variable ändern.

Wäre der Wert fest im Code hinterlegt gewesen, müsste man ihn an jeder Stelle ändern, was den Zeitaufwand für Verbesserungen oder Anpassungen des Codes erheblich erhöht.

Zusammenfassung

Zusammenfassend lässt sich sagen, dass in Datenstrukturen verschiedene Arten von Daten, einschließlich anderer Datenstrukturen, verwendet werden können. Dies erhöht die Benutzerfreundlichkeit der Datenstrukturen und bietet Flexibilität für Ihre Anwendung. Allerdings sollte man die algorithmische Komplexität nicht vergessen, da sie ein entscheidender Parameter beim Schreiben einer Anwendung ist. Beim Einsatz von Datenstrukturen innerhalb anderer Datenstrukturen ist es recht einfach, Fehler zu machen und die Ausführung einer bestimmten Operation erheblich zu erschweren.

Behalten Sie dies im Auge, und Ihr Code wird exzellent sein!

1. Wie lautet die Zeitkomplexität eines Algorithmus, der ein Array der Größe n durchläuft und für jedes Element eine Operation mit konstanter Laufzeit ausführt?

2. Was ist der Hauptnachteil, wenn Werte direkt im Code fest codiert werden?

3. Gegeben sind zwei Algorithmen mit den Zeitkomplexitäten O(n log n) und O(n^2). Welcher ist im Allgemeinen bei großen Eingabemengen effizienter?

question mark

Wie lautet die Zeitkomplexität eines Algorithmus, der ein Array der Größe n durchläuft und für jedes Element eine Operation mit konstanter Laufzeit ausführt?

Select the correct answer

question mark

Was ist der Hauptnachteil, wenn Werte direkt im Code fest codiert werden?

Select the correct answer

question mark

Gegeben sind zwei Algorithmen mit den Zeitkomplexitäten O(n log n) und O(n^2). Welcher ist im Allgemeinen bei großen Eingabemengen effizienter?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 4

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

Suggested prompts:

Can you give an example of how to store an ArrayList as a value in a map?

What are some best practices to avoid hardcoding in such scenarios?

Can you explain more about the potential challenges of retrieving data from nested data structures?

bookMap Mit Anderen Datenstrukturen

Swipe um das Menü anzuzeigen

Im Allgemeinen gibt es nicht viel mehr über Maps zu sagen. Die Information, dass es sich um eine Datenstruktur handelt, die Daten nach dem Schlüssel-Wert-Prinzip speichert, ist ausreichend. Aber was ist, wenn Sie ein kleines Abenteuer wagen und eine Datenstruktur wie eine ArrayList als Wert in der Map speichern möchten?

Datenstrukturen als Werte in einer Map speichern

Vielleicht gibt es zu wenige Kollisionen in der HashMap, und Sie möchten Daten auf eine noch ungewöhnlichere Weise speichern.

Main.java

Main.java

copy
1234567891011121314151617181920212223242526
package com.example; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Main { public static void main(String[] args) { List<String> marketingDepartment = new ArrayList<>(); marketingDepartment.add("Michael"); marketingDepartment.add("Alice"); marketingDepartment.add("Jimmy"); List<String> developerDepartment = new ArrayList<>(); developerDepartment.add("Bob"); developerDepartment.add("John"); developerDepartment.add("Ryan"); Map<String, List<String>> company = new HashMap<>(); company.put("Marketing", marketingDepartment); company.put("Development", developerDepartment); System.out.println("Company: " + company); } }

Hier ist ein Beispiel für das Erstellen einer Datenstruktur, die Informationen über ein bestimmtes Unternehmen speichert. Dieser Ansatz wird manchmal bei der Arbeit mit Datenbanken verwendet, jedoch sollte er nicht übermäßig eingesetzt werden, da das Abrufen von Daten aus solchen Datenstrukturen herausfordernd sein kann. Angenommen, wir möchten den Vermarkter an Index 1 abrufen.

Main.java

Main.java

copy
1234567891011121314151617181920212223242526272829
package com.example; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class Main { public static void main(String[] args) { List<String> marketingDepartment = new ArrayList<>(); marketingDepartment.add("Michael"); marketingDepartment.add("Alice"); marketingDepartment.add("Jimmy"); List<String> developerDepartment = new ArrayList<>(); developerDepartment.add("Bob"); developerDepartment.add("John"); developerDepartment.add("Ryan"); Map<String, List<String>> company = new HashMap<>(); company.put("Marketing", marketingDepartment); company.put("Development", developerDepartment); System.out.println("Company: " + company); String marketerAtIndexOne = company.get("Marketing").get(1); System.out.println("Marketer at index 1 is: " + marketerAtIndexOne); } }

Auf den ersten Blick scheint es nicht kompliziert. Es ist lediglich erforderlich, die Methode noch einmal zu verwenden. In der Programmierung ist es jedoch entscheidend, das Hardcoding zu vermeiden.

Hardcodierung ist problematisch und sollte in jeder Hinsicht vermieden werden. Im Folgenden wird ein Beispiel mit Hardcodierung gezeigt, das anschließend gemeinsam verbessert wird:

Main.java

Main.java

copy
123456789101112
package com.example; public class Main { public static void main(String[] args) { // Hardcoded value double price = 49.99; // Using hardcoded value double discountedPrice = price * 0.8; // 20% discount System.out.println("Discounted Price: " + discountedPrice); } }

Wie zu sehen ist, gibt es im obigen Code eine Hardcodierung. Beim Festlegen des Rabatts wird eine einfache Zahl verwendet. Dieser Rabatt sollte in einer Variablen gespeichert werden, um den Wert später wiederverwenden zu können. Im Folgenden wird der obige Code verbessert:

Main.java

Main.java

copy
12345678910111213
package com.example; public class Main { public static void main(String[] args) { // Using variables instead of hardcoding double price = 49.99; double discountPercentage = 0.2; // 20% discount // Using variables double discountedPrice = price * (1 - discountPercentage); System.out.println("Discounted Price: " + discountedPrice); } }

Auf diese Weise erhält man eine Variable mit dem Rabattwert, und in einem großen Programm in der Zukunft müsste man nur den Wert dieser einen Variable ändern.

Wäre der Wert fest im Code hinterlegt gewesen, müsste man ihn an jeder Stelle ändern, was den Zeitaufwand für Verbesserungen oder Anpassungen des Codes erheblich erhöht.

Zusammenfassung

Zusammenfassend lässt sich sagen, dass in Datenstrukturen verschiedene Arten von Daten, einschließlich anderer Datenstrukturen, verwendet werden können. Dies erhöht die Benutzerfreundlichkeit der Datenstrukturen und bietet Flexibilität für Ihre Anwendung. Allerdings sollte man die algorithmische Komplexität nicht vergessen, da sie ein entscheidender Parameter beim Schreiben einer Anwendung ist. Beim Einsatz von Datenstrukturen innerhalb anderer Datenstrukturen ist es recht einfach, Fehler zu machen und die Ausführung einer bestimmten Operation erheblich zu erschweren.

Behalten Sie dies im Auge, und Ihr Code wird exzellent sein!

1. Wie lautet die Zeitkomplexität eines Algorithmus, der ein Array der Größe n durchläuft und für jedes Element eine Operation mit konstanter Laufzeit ausführt?

2. Was ist der Hauptnachteil, wenn Werte direkt im Code fest codiert werden?

3. Gegeben sind zwei Algorithmen mit den Zeitkomplexitäten O(n log n) und O(n^2). Welcher ist im Allgemeinen bei großen Eingabemengen effizienter?

question mark

Wie lautet die Zeitkomplexität eines Algorithmus, der ein Array der Größe n durchläuft und für jedes Element eine Operation mit konstanter Laufzeit ausführt?

Select the correct answer

question mark

Was ist der Hauptnachteil, wenn Werte direkt im Code fest codiert werden?

Select the correct answer

question mark

Gegeben sind zwei Algorithmen mit den Zeitkomplexitäten O(n log n) und O(n^2). Welcher ist im Allgemeinen bei großen Eingabemengen effizienter?

Select the correct answer

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 4
some-alt