Map 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
Möglicherweise gibt es zu wenige Kollisionen in der HashMap, und Sie möchten Daten auf eine noch ungewöhnlichere Weise speichern.
Main.java
1234567891011121314151617181920212223242526package 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 schwierig sein kann. Angenommen, wir möchten den Marketingmitarbeiter an Index 1 abrufen.
Main.java
1234567891011121314151617181920212223242526272829package 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 zu sein. Es ist lediglich erforderlich, die Methode noch einmal zu verwenden. In der Programmierung ist es jedoch entscheidend, das Hardcoding zu vermeiden.
Hardcodierung ist schlecht und sollte in jeder Hinsicht vermieden werden. Hier ein Beispiel mit Hardcodierung, das wir anschließend gemeinsam verbessern:
Main.java
123456789101112package 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 Sie sehen, gibt es im obigen Code eine Hardcodierung. Beim Festlegen des Rabatts wird eine einfache Zahl verwendet. Dieser Rabatt sollte in einer Variablen gespeichert werden, damit der Wert später wiederverwendet werden kann. Verbessern wir den obigen Code:
Main.java
12345678910111213package 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.
Hätte man den Wert fest im Code hinterlegt, müsste man an jeder Stelle den Wert ä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 die algorithmische Komplexität nicht außer Acht gelassen werden, da sie ein entscheidender Parameter beim Schreiben einer Anwendung ist. Beim Einsatz von Datenstrukturen innerhalb anderer Datenstrukturen können leicht Fehler entstehen und die Ausführung bestimmter Operationen erheblich erschwert werden.
Behalten Sie dies im Blick, 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?
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen