Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Map Med Andre Datastrukturer | Mestring af Map i Java
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Java Datastrukturer

bookMap Med Andre Datastrukturer

Generelt er der ikke meget mere at sige om maps. Oplysningen om, at det er en datastruktur, der gemmer data baseret på nøgle-værdi-princippet, er tilstrækkelig. Men hvad nu hvis du ønsker at eksperimentere lidt og indsætte en datastruktur som en ArrayList som værdi i map'en?

Brug af datastrukturer som værdier i en map

Måske vil du opleve for få kollisioner i hashmap'et, og du kunne have lyst til at gemme data på en endnu mere speciel måde.

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); } }

Her er et eksempel på oprettelse af en datastruktur, der gemmer information om en bestemt virksomhed. Denne tilgang anvendes nogle gange ved arbejde med databaser, men det anbefales ikke at overforbruge den, da hentning af data fra sådanne datastrukturer kan være udfordrende. For eksempel, antag at vi ønsker at hente marketingmedarbejderenindeks 1.

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); } }

Ved første øjekast virker det ikke kompliceret. Du skal blot bruge metoden én gang mere. Dog er det i programmering afgørende at undgå hardcoding.

Hardcoding er uhensigtsmæssigt, og det bør undgås på alle måder. Her er et eksempel med hardcoding, som vi derefter vil rette:

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); } }

Som det fremgår, er der hardcoding i koden ovenfor. Ved angivelse af rabatten anvendes et almindeligt tal. Denne rabat bør gemmes i en variabel, så værdien kan genbruges senere. Lad os forbedre koden ovenfor:

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); } }

På denne måde opnås en variabel med rabatværdien, og i et større program i fremtiden vil det kun være nødvendigt at ændre værdien af denne ene variabel.

Hvis det var blevet hardkodet, skulle værdien ændres i alle forekomster, hvilket betydeligt øger tiden det tager at forbedre eller redigere koden.

Sammenfatning

Sammenfattende kan det siges, at i datastrukturer kan forskellige typer data, herunder andre datastrukturer, anvendes. Dette giver bekvemmelighed ved anvendelsen af disse datastrukturer og fleksibilitet til din applikation. Dog bør man ikke glemme algoritmisk kompleksitet, da det er en afgørende parameter ved udvikling af en applikation. Ved anvendelse af datastrukturer inden i andre datastrukturer kan det være let at begå fejl og væsentligt komplicere udførelsen af en specifik operation.

Vær opmærksom på dette, og din kode vil være fremragende!

1. Hvad er tidskompleksiteten for en algoritme, der itererer gennem et array af størrelse n og udfører en konstant-tids operation på hvert element?

2. Hvad er den største ulempe ved at hardkode værdier direkte i koden?

3. Givet to algoritmer med tidskompleksiteterne O(n log n) og O(n^2), hvilken er generelt mere effektiv for store inputstørrelser?

question mark

Hvad er tidskompleksiteten for en algoritme, der itererer gennem et array af størrelse n og udfører en konstant-tids operation på hvert element?

Select the correct answer

question mark

Hvad er den største ulempe ved at hardkode værdier direkte i koden?

Select the correct answer

question mark

Givet to algoritmer med tidskompleksiteterne O(n log n) og O(n^2), hvilken er generelt mere effektiv for store inputstørrelser?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

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 Med Andre Datastrukturer

Stryg for at vise menuen

Generelt er der ikke meget mere at sige om maps. Oplysningen om, at det er en datastruktur, der gemmer data baseret på nøgle-værdi-princippet, er tilstrækkelig. Men hvad nu hvis du ønsker at eksperimentere lidt og indsætte en datastruktur som en ArrayList som værdi i map'en?

Brug af datastrukturer som værdier i en map

Måske vil du opleve for få kollisioner i hashmap'et, og du kunne have lyst til at gemme data på en endnu mere speciel måde.

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); } }

Her er et eksempel på oprettelse af en datastruktur, der gemmer information om en bestemt virksomhed. Denne tilgang anvendes nogle gange ved arbejde med databaser, men det anbefales ikke at overforbruge den, da hentning af data fra sådanne datastrukturer kan være udfordrende. For eksempel, antag at vi ønsker at hente marketingmedarbejderenindeks 1.

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); } }

Ved første øjekast virker det ikke kompliceret. Du skal blot bruge metoden én gang mere. Dog er det i programmering afgørende at undgå hardcoding.

Hardcoding er uhensigtsmæssigt, og det bør undgås på alle måder. Her er et eksempel med hardcoding, som vi derefter vil rette:

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); } }

Som det fremgår, er der hardcoding i koden ovenfor. Ved angivelse af rabatten anvendes et almindeligt tal. Denne rabat bør gemmes i en variabel, så værdien kan genbruges senere. Lad os forbedre koden ovenfor:

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); } }

På denne måde opnås en variabel med rabatværdien, og i et større program i fremtiden vil det kun være nødvendigt at ændre værdien af denne ene variabel.

Hvis det var blevet hardkodet, skulle værdien ændres i alle forekomster, hvilket betydeligt øger tiden det tager at forbedre eller redigere koden.

Sammenfatning

Sammenfattende kan det siges, at i datastrukturer kan forskellige typer data, herunder andre datastrukturer, anvendes. Dette giver bekvemmelighed ved anvendelsen af disse datastrukturer og fleksibilitet til din applikation. Dog bør man ikke glemme algoritmisk kompleksitet, da det er en afgørende parameter ved udvikling af en applikation. Ved anvendelse af datastrukturer inden i andre datastrukturer kan det være let at begå fejl og væsentligt komplicere udførelsen af en specifik operation.

Vær opmærksom på dette, og din kode vil være fremragende!

1. Hvad er tidskompleksiteten for en algoritme, der itererer gennem et array af størrelse n og udfører en konstant-tids operation på hvert element?

2. Hvad er den største ulempe ved at hardkode værdier direkte i koden?

3. Givet to algoritmer med tidskompleksiteterne O(n log n) og O(n^2), hvilken er generelt mere effektiv for store inputstørrelser?

question mark

Hvad er tidskompleksiteten for en algoritme, der itererer gennem et array af størrelse n og udfører en konstant-tids operation på hvert element?

Select the correct answer

question mark

Hvad er den største ulempe ved at hardkode værdier direkte i koden?

Select the correct answer

question mark

Givet to algoritmer med tidskompleksiteterne O(n log n) og O(n^2), hvilken er generelt mere effektiv for store inputstørrelser?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 4
some-alt