Kurzusok
/
Java
Java
/
Feladatok
/
Nemzetközi hívások szakértője
Nemzetközi hívások szakértője

Nemzetközi hívások szakértője

Tanulófeladat

Bevezetés

Map-ek

A Map olyan adatstruktúra, amely kulcs-érték párokat tárol. Hasonló a szótárhoz más programozási nyelvekben. A Map interfész határozza meg a mapon végezhető műveleteket.

A Java számos különböző Map-implementációval rendelkezik. A HashMap az egyik gyakran használt közülük.

// Make an instance
Map<String, Integer> fruitPrices = new HashMap<>();

A maphoz a put segítségével adhatsz hozzá bejegyzéseket.

fruitPrices.put("apple", 100);
fruitPrices.put("pear", 80);
// => { "apple" => 100, "pear" => 80 }

Minden kulcshoz csak egyetlen érték tartozhat. Ha ugyanazzal a kulccsal hívod meg a put metódust, az frissíti a kulcs értékét.

fruitPrices.put("pear", 40);
// => { "apple" => 100, "pear" => 40 }

Egy kulcs értékét a get segítségével kérheted le.

fruitPrices.get("apple"); // => 100

A containsKey segítségével megnézheted, hogy a map tartalmaz-e egy adott kulcsot.

fruitPrices.containsKey("apple");  // => true
fruitPrices.containsKey("orange"); // => false

A remove segítségével távolíthatsz el bejegyzéseket.

fruitPrices.put("plum", 90);  // Add plum to map
fruitPrices.remove("plum");   // Removes plum from map

A size metódus a bejegyzések számát adja vissza.

fruitPrices.size();  // Returns 2

A keySet és a values metódussal a Map kulcsait, illetve értékeit kérheted le egy Set, illetve egy gyűjtemény formájában.

fruitPrices.keySet();  // Returns "apple" and "pear" in a set
fruitPrices.values();  // Returns 100 and 80, in a Collection

Utasítások

Ebben a feladatban egy nemzetközi hívószámokat tartalmazó szótár kezeléséhez írsz kódot, egy Map segítségével.

A szótár lehetővé teszi, hogy a nemzetközi hívószám (a map kulcsa, Integerként) alapján kikeresd egy ország nevét (a map értéke, Stringként).

1. A hívószámok visszaadása egy mapben

Valósítsd meg a getCodes metódust, amely nem vesz át paramétert, és visszaadja a szótárban jelenleg szereplő hívószámokat és országokat tartalmazó mapet.

DialingCodes dialingCodes = new DialingCodes();
dialingCodes.getCodes();
// => empty map 

2. Bejegyzések hozzáadása a szótárhoz

A szótárt fel kell tölteni tartalommal. Valósítsd meg a setDialingCode metódust, amely átvesz egy hívószámot és a hozzá tartozó országot, majd hozzáadja a hívószámot és az országot. Ha a hívószám már szerepel a mapben, frissítsd a mapet a megadott hívószámmal és országgal.

DialingCodes dialingCodes = new DialingCodes();
dialingCodes.setDialingCode(679, "Unknown");
// => { 679 => "Unknown" }

dialingCodes.setDialingCode(679, "Fiji");
// => { 679 => "Fiji" }

3. Egy hívószámhoz tartozó ország kikeresése

Valósítsd meg a getCountry metódust, amely átvesz egy hívószámot, és visszaadja a hívószámhoz tartozó ország nevét.

DialingCodes dialingCodes = new DialingCodes();
dialingCodes.setDialingCode(55, "Brazil");
dialingCodes.getCountry(55);
// => "Brazil"

4. Ne engedj meg duplikátumokat

Amikor hívószámot adsz hozzá, ügyelni kell arra, hogy se egy hívószám, se egy ország ne kerülhessen be kétszer. Ha ez mégis megtörténik, feltételezhetjük, hogy az első bejegyzés a helyes. Valósítsd meg az addNewDialingCode metódust, amely bejegyzést ad hozzá a megadott hívószámhoz és országhoz. A setDialingCode metódustól eltérően azonban nem tesz semmit, ha a hívószám vagy az ország már szerepel a mapben.

DialingCodes dialingCodes = new DialingCodes();
dialingCodes.addNewDialingCode(32, "Belgium");
dialingCodes.addNewDialingCode(379, "Vatican City");
// => { 32 => "Belgium", 379 => "Vatican City" }


dialingCodes.addNewDialingCode(32, "Other");
dialingCodes.addNewDialingCode(39, "Vatican City");
// => { 32 => "Belgium", 379 => "Vatican City" }

5. Egy ország hívószámának megkeresése

Ritkán fordul elő, de előfordulhatnak hibák. A hiba kijavításához tudnunk kell, hogy az ország jelenleg melyik hívószámhoz van rendelve. Hogy megtaláld, melyik hívószámot kell kijavítani, valósítsd meg a findDialingCode metódust, amely átvesz egy országot, és visszaadja az ország hívószámát. Ha az ország nincs benne a mapben, adj vissza null értéket.

DialingCodes dialingCodes = new DialingCodes();
dialingCodes.addDialingCode(44, "UK");
dialingCodes.findDialingCode("UK");
// => 44

dialingCodes.findDialingCode("Unlisted");
// => null

6. Az ország hívószámának frissítése

Most, hogy tudjuk, melyik hívószámot kell kijavítani, nekiláthatunk a frissítésnek. Valósítsd meg az updateCountryDialingCode metódust, amely átveszi az ország új hívószámát és az ország nevét, és ennek megfelelően frissít. Ha az ország nincs benne a mapben, ne tégy semmit (mivel ez a metódus csak a hibák kijavításában segít).

DialingCodes dialingCodes = new DialingCodes();
dialingCodes.addDialingCode(88, "Japan");
// => { 88 => "Japan" }

dialingCodes.updateCountryDialingCode(81, "Japan");
// => { 81 => "Japan" }

dialingCodes.updateCountryDialingCode(32, "Mars");
// => { 81 => "Japan"}
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Java Exercism

Készen állsz elkezdeni a(z) Nemzetközi hívások szakértője feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Java nyelvet 26 fogalom158 feladat segítségével, valódi emberi mentorálással, mindez ingyen.