CodeGym
Promocja
Nauka
Kursy
Zadania
Ankiety & quizy
Gry
Pomoc
Harmonogram
Społeczność
Użytkownicy
Forum
Czat
Artykuły
Historie sukcesu
Aktywność
Opinie
Subskrypcje
Jasny motyw
Pytanie
  • Opinie
  • O nas
Start
Rozpocznij naukę
Rozpocznij naukę teraz
  • Wszystkie pytania
CodeGym/Pomoc w zadaniach Java/What do I do wrong?
Joanna
Poziom 18
Warszawa
  • 10.04.2020
  • 1048wyświetlenia
  • 1komentarz

What do I do wrong?

Pytanie o zadanie Identyczne wyrazy na liście
Java Syntax,  Poziom 10,  Lekcja 11
W trakcie dyskusji


Wczytaj listę 20 wyrazów z klawiatury.
Należy policzyć, ile razy każde słowo pojawia się na liście.
Wynik należy przedstawić w formie Map<String, Integer>, gdzie kluczem jest unikatowy wyraz, a wartością jest liczba jego wystąpień na liście.

Wyświetl zawartość mapy.
Wielkość liter (wielkie/małe) wpływa na wynik.

Wymagania:
  • Metoda liczSlowa musi deklarować i inicjalizować HashMap<String, Integer>.
  • Metoda liczSlowa musi zwracać utworzoną mapę.
  • Metoda liczSlowa powinna dodawać klucze, które odpowiadają unikalnym słowom i wartości, które odpowiadają liczbie wystąpień tych słów.
  • Program powinien wyświetlać powstałą mapę.
  • Metoda main musi wywoływać metodę liczSlowa.
package pl.codegym.task.task10.task1016; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; /* Identyczne wyrazy na liście */ public class Solution { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); ArrayList<String> slowa = new ArrayList<String>(); for (int i = 0; i < 20; i++) { slowa.add(reader.readLine()); } Map<String, Integer> mapa = liczSlowa(slowa); for (Map.Entry<String, Integer> para : mapa.entrySet()) { System.out.println(para.getKey() + " " + para.getValue()); } } public static Map<String, Integer> liczSlowa(ArrayList<String> lista) { HashMap<String, Integer> wynik = new HashMap<String, Integer>(); String wyraz = " "; int licznik = 0; for (int i = 0; i < lista.size() - 1; i++) { wyraz = lista.get(i); licznik = 0; for (int j = 0; j < lista.size() - 1; j++) { if (wyraz.equals(lista.get(j))) { licznik++; } } if(wynik.containsKey(wyraz)){ } else{ wynik.put(wyraz,licznik); } } return wynik; } }
0
Komentarze (1)
  • Popularne
  • Nowe
  • Najstarsze
Musisz być zalogowany aby dodać komentarz
Arnold Cytrowski
Poziom 29 , Breslau, Poland
17 kwietnia 2020, 06:00
just simplify it:
public static Map<String, Integer> liczSlowa(ArrayList<String> lista) {
       HashMap<String, Integer> wynik = new HashMap<String, Integer>();
       for (String s : lista) {
           wynik.put(s, Collections.frequency(lista, s));
       }



       return wynik;
   }
+1
Nauka
  • Rejestracja
  • Kurs Java
  • Pomoc w zadaniach
  • Cennik
  • Składnia Javy
Społeczność
  • Użytkownicy
  • Artykuły
  • Forum
  • Czat
  • Historie sukcesu
  • Aktywność
  • Program partnerski
Firma
  • O nas
  • Kontakt
  • Opinie
  • Dla mediów
  • CodeGym dla EDU
  • FAQ
  • Wsparcie
CodeGymCodeGym to kurs online do nauki programowania w Javie od podstaw. Kurs idealny do opanowania Javy dla początkujących. Zawiera 1200+ zadań z natychmiastową weryfikacją oraz niezbędny zakres teorii podstaw Javy. Aby pomóc Ci w nauce, wprowadziliśmy zestaw funkcji motywacyjnych: quizy, projekty programistyczne, materiały o efektywnej nauce i poradnik kariery dla programisty Java.
Obserwuj nas
Język interfejsu
English Deutsch Español हिन्दी Français Português
Polski
বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programiści są tworzeni, nie rodzą się" © 2026 CodeGym
MastercardVisa
"Programiści są tworzeni, nie rodzą się" © 2026 CodeGym