[JAVA] Ein Programm, das die Anzahl der Wörter in einer Liste zählt

Aus irgendeinem Grund habe ich ständigen Zugriff auf das "Programm, das Java-Wörter zählt", das ich in meinem Programm gepostet habe. Also habe ich den Code in diesem Blog gepostet Ich habe es vor mehr als 10 Jahren geschrieben, aber wenn ich es mir jetzt ansehe, ist es mir peinlich, dass ich den generischen Typ für List nicht verwende und es verschiedene unreife Teile gibt.

Before.java


import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

public class WordCounterTable {
    private Map counterTable;
    
    public WordCounterTable(){
        this.counterTable = new HashMap();    
    }

    public void count(List list){
        for(Iterator ite = list.iterator();ite.hasNext();){
            Object target = ite.next();
            if(this.counterTable.get(target) == null){
                this.counterTable.put(target,new Integer(1));    
            }else{
                this.counterTable.put(target,
                new Integer(
                ((Integer)this.counterTable.get(target)).intValue()+1)
                );
            }
        }
    }
    
    public String printTableValue(){
        StringBuffer buf = new StringBuffer();
        for(Iterator ite = this.counterTable.keySet().iterator();ite.hasNext();){
            Object key = ite.next();
            buf.append("word:"+key+" count:"+this.counterTable.get(key)+"\n");
        }
        return buf.toString();
    }
}

Daher kann ich ein so peinliches Programm nicht für immer in meinem Blog veröffentlichen, also habe ich es mit der Stream-Funktion von Java8 neu geschrieben.

WordCount.java


package test;

import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.function.Function;

public class WordCount {

	public static void main(String args[]){
		List<String> list = Arrays.asList("triple","evergreen","puisan","triple","puisan");
		Map<String,Integer> map = list.stream().collect(
				Collectors.groupingBy(
						//Stellen Sie das List-Element so ein, wie es in der Map-Taste ist
						Function.identity(),
						//Ersetzen Sie das Listenelement durch 1 für den Kartenwert, damit es zählt
						Collectors.summingInt(s->1)) 
				);
		System.out.println(map);
	}
}
//{triple=2, puisan=2, evergreen=1}Wird an die Konsole ausgegeben

Die Stream-Funktion ist praktisch, nicht wahr? Im Vergleich zum vorherigen Lichtprogramm ist die Logik sauberer und sieht wunderschön aus.

Recommended Posts

Ein Programm, das die Anzahl der Wörter in einer Liste zählt
Beispielprogramm, das den Hashwert einer Datei in Java zurückgibt
Reihenfolge der Verarbeitung im Programm
Finden Sie mit Kotlin die Anzahl der Tage in einem Monat
Ein Programm (Java), das die Summe von ungeraden und geraden Zahlen in einem Array ausgibt
Erhöhen Sie dynamisch die Anzahl der Elemente in einem zweidimensionalen Java-Array (mehrdimensionales Array).
Messen Sie die Größe eines Ordners mit Java
Erstellen eines Beispielprogramms mit dem Problem eines Datenbankspezialisten für DDD-Verbesserung 2
Rufen Sie den in der Controller-Klasse von Spring Boot definierten Pfad als Liste ab
Erstellen eines Beispielprogramms mit dem Problem eines Datenbankspezialisten mit DDD-Verbesserung 1
Herbst 2017 Sicherheitsspezialist Ich habe die Häufigkeit der Wörter überprüft, die am Morgen 2 erschienen sind
Holen Sie sich eine Liste der Klassen in einem Guava-spezifischen Paket
Die Objekte in der Liste waren Referenzen, richtig? Bestätigung von
Extrahieren Sie ein bestimmtes Element aus der Liste der Objekte
Zählen Sie die Häufigkeit des Auftretens von Wörtern in einem Satz durch Stream-Verarbeitung (Apache Apex).
Eine kurze Erklärung der fünf Arten von Java Static
Liste der Geräte, die mit Swift UI in der Vorschau angezeigt werden können
Überprüfen Sie die Abhängigkeit eines bestimmten Maven-Artefakts in Coursier
Ein Memo des Programms, mit dem Sie feststellen können, dass die Wahrscheinlichkeit eines Würfelwurfs etwa 1/6 beträgt
Erstellen Sie eine Datenbank aller Bücher, die im letzten Jahrhundert in Japan im Umlauf waren
Aggregieren Sie die Anzahl der Personen alle 10 Jahre aus Liste <Person>
Ich habe versucht, ein Programm in Java zu erstellen, das das Problem des Handlungsreisenden mit einem genetischen Algorithmus löst
[Swift] Wenn Sie wissen möchten, ob die Anzahl der Zeichen in String mit einer bestimmten Anzahl übereinstimmt ...
Eine Liste selbstzufriedener Artikel über Sprachspezifikationen, die Ihnen wahrscheinlich nicht direkt bei Ihrer Programmierung helfen werden
Generieren Sie mit TableGenerator of Hibernate (JPA) eine Seriennummer und speichern Sie diese in der ID von String.
Rufen Sie in Spring Boot eine Proxy-Instanz der Komponente selbst ab
Die Geschichte, dass die Standardausgabe auch das Verhalten des Programms tödlich verändert
Untersuchen Sie die Liste der in AWS Lambda + Java verfügbaren Schriftarten
Ein Memo, das die einfache Chat-Anwendung von Node.js + socket.io enthält
Verwandeln Sie ein Array von Strings in eine Liste von Ganzzahlen in Java
Untersuchen Sie die Liste der Zeitzonen-IDs, die in der Java ZoneId-Klasse verfügbar sind
Rufen Sie die öffentliche URL der privaten Datei von Flickr in Java ab
Eine Geschichte, die mit der Einführung von Web Apple Pay zu kämpfen hatte
Die Geschichte, dass Tomcat in Eclipse unter einem Timeout-Fehler litt
Das Problem, dass das Attribut des Benutzermodells in ActionMailer gleich Null wird
So geben Sie eine Liste von Zeichenfolgen in JSF als durch Kommas getrennte Zeichenfolgen aus
Lassen Sie uns eine TODO-App in Java 5 erstellen. Schalten Sie die Anzeige von TODO um
Formular, das den Wert des sich wiederholenden Elements in Spring MVC erhält
Lassen Sie uns ein custom_cop erstellen, das auf das Schütteln des Namens hinweist
[Java] Löschen Sie die Elemente von List
Eine Liste der rawValues für UITextContentType.
Liste der Java-Objekte sortieren
Dies und das von JDK
Ein Memorandum über das FizzBuzz-Problem
Liste der in Java 9 hinzugefügten Mitglieder
Erstellen Sie ein Servlet-Programm in Eclipse
Liste der in Java 9 hinzugefügten Typen
Anzahl der Ziffern des numerischen Typs
Erstellen einer ArrayList, mit der Sie die Koordinaten einer zweidimensionalen Ebene eingeben und abrufen können
Korrektur, um eine Erhöhung der DB-Verbindungsnummer mit dem benutzerdefinierten Authentifizierungsanbieter des Cognos SDK-Beispiels zu verhindern
[Android] Entwickeln Sie einen Dienst, mit dem Universitätsstudenten den Betriebsstatus von Bussen überprüfen können, die an der Universität verkehren.
[Spring Boot] Liste der Validierungsregeln, die in der Eigenschaftendatei für Fehlermeldungen verwendet werden können