[Java] Überprüfen Sie die Anzahl der Zeichen

Inhaltsverzeichnis

--Einführung --Prämisse ――Was Sie erreichen wollen »Was ich versucht habe --Problem

Einführung

Plötzlich möchte ich Map and List studieren! !! Ich dachte </ b>, also dachte ich über die Probleme nach und machte es. Ich bin auf die Rollen und Konvertierungen von Map und List gestoßen. Selbst wenn ich online gesucht habe, konnte ich keine guten Ergebnisse finden, also habe ich meine eigenen zusammengestellt und werde einen Artikel schreiben.

Annahme

――Was Sie erreichen wollen

  • Identifizierung der am häufigsten verwendeten Zeichenfolge für n beliebige Zeichenfolgeneingabe (n_1 n_2 n_3 ... ... n). »Was ich versucht habe --Implementiert [Schlüssel: Eingabezeichenfolge, Wert: Anzahl der Erscheinungen] als Map <String, Integer> map = Map ();
  • Sortieren Sie die Karte nach [Wert] und rufen Sie den ersten [Schlüssel] ab!

--Problem

  • Das Kartensystem [HashMap, LinkedHashMap, TreeMap] hat grundsätzlich keine Reihenfolge der Elemente.

  • Wie bei map [0] können Sie den Wert nicht nach Index abrufen.

  • Lösungen

  • Sie können die Kombination aus Kartenschlüssel und Wert mithilfe der Map.Entry-Klasse abrufen.

  • Sie können Eintragsobjekte in Liste speichern und nach Eintragswert von Liste [i] sortieren.

Implementierungsdetails

Die auf der Lösung basierenden Inhalte sind wie folgt.

CountMain.java



import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Scanner;

public class CountMain {

	public static void main(String[] args) {

		//Eingangserkennung
		Scanner sc = new Scanner(System.in);
		String count = sc.nextLine();
		String[] line = sc.nextLine().split(" ");

		//Kartenerstellung
		Map<String, Integer> map = new HashMap<String, Integer>();
		for(int i=0; i<line.length; i++){
			if(!map.containsKey(line[i])){
				map.put(line[i], 1);
			} else {
				int tmp = map.get(line[i]);
				map.remove(line[i]);
				map.put(line[i], tmp+1);
			}
		}

		//Karteneintrag abrufen → In Liste speichern
		List<Entry<String, Integer>> list = new ArrayList<Entry<String, Integer>>();
		for (Map.Entry<String, Integer> entry : map.entrySet()){
				list.add(entry);
		}

		//Vergleichen Sie den Wert des Eintrags in Liste → Sortieren
		for (int i = 0; i < list.size(); i++){
			for (int j = list.size()-1; j > i; j--){
				if (list.get(j).getValue() > list.get(j-1).getValue()){
					Map.Entry<String, Integer> tmpEntry = list.get(j-1);
					list.set(j-1, list.get(j));
					list.set(j, tmpEntry);
				}
			}
		}
		
		System.out.print(list.get(0).getKey());
		try {
			int i = 1;
			while( list.get(i).getValue() == list.get(i-1).getValue() ){
				System.out.print(" " + list.get(i).getKey());
				i++;
			}
		} catch (IndexOutOfBoundsException e){
			return;
		} finally {
			System.out.println("");
			sc.close();
		}
	}
}

Am Ende

--Zusammenfassung ――Es ist wichtig, sich der Rolle jeder Klasse bewusst zu sein --Map wirft Funktionen in List, wenn Sie ein assoziatives Array und ein geordnetes Array benötigen. ――Weil ich das nicht konnte, habe ich nicht verstanden, als ich zum ersten Mal versuchte, die Karte zu sortieren.

  • Zukünftige Aufgaben --Die Sortierung in der Liste erfolgt nach einer von Menschen betriebenen Blasensortierung, aber anscheinend können Sie Collection.sort () verwenden.
  • Etwas wie Comparator <> scheint nützlich zu sein.
  • Referenzlink unten
    • https://www.sejuku.net/blog/16176
    • http://lovedvoraklayout.hatenablog.com/entry/java-map-value-sort-2
    • https://teratail.com/questions/117328

Recommended Posts

[Java] Überprüfen Sie die Anzahl der Zeichen
Befehl zum Überprüfen der Anzahl und des Status von Java-Threads
[Java] Löschen Sie die angegebene Anzahl von Zeichen am Ende von StringBuilder
Überprüfen Sie den Inhalt des Java-Zertifikatspeichers
[Java] Überprüfen Sie die JDK-Version der erstellten Kriegsdatei
Überprüfen Sie das Verhalten von Java Intrinsic Locks mit bpftrace
Zählen Sie die Anzahl der Stellen nach dem Dezimalpunkt in Java
[Java] Löschen Sie die Elemente von List
[Schienen] Überprüfen Sie den Inhalt des Objekts
[Java Edition] Geschichte der Serialisierung
Überprüfen Sie die Version von Cent OS
Überprüfen Sie den Migrationsstatus von Schienen
Der Ursprung von Java-Lambda-Ausdrücken
So überprüfen Sie den Inhalt der Java-Zeichenfolge mit fester Länge
Holen Sie sich das Ergebnis von POST in Java
Überprüfen Sie den Inhalt der Parameter mit pry
Untersuchen Sie die Speichernutzung von Java-Elementen
[Java] Ermittelt den Tag eines bestimmten Tages
Vergleichen Sie Elemente eines Arrays (Java)
So bestimmen Sie die Anzahl der Parallelen
[Tag: 5] Ich habe die Grundlagen von Java zusammengefasst
Was sind die aktualisierten Funktionen von Java 13
Messen Sie einfach die Größe von Java-Objekten
Rückblick auf die Grundlagen von Java
Ausgabe des Buches "Einführung in Java"
Über die Anzahl der Threads von Completable Future
Die Geschichte des Schreibens von Java in Emacs
Überprüfen Sie die Version der Standard-Web-Software.
[Java] [Spring] Testen Sie das Verhalten des Loggers
Überprüfen Sie die Funktion der Schnittstelle über den Thread
Erhöhen Sie dynamisch die Anzahl der Elemente in einem zweidimensionalen Java-Array (mehrdimensionales Array).
So ermitteln Sie die Gesamtzahl der Seiten beim Paging in Java
Überprüfen Sie den MX-Eintrag der E-Mail-Adresse mit Java und die Domain
[Java] Überprüfen Sie, ob die Zeichenfolge nur aus Leerzeichen besteht (= Leerzeichen)
Überprüfen Sie die installierte und aktivierte JDK-Version
Die Geschichte des einfachen String-Vergleichs in Java
[Java] Behandlung von Java Beans in der Methodenkette
JAVA: jar, aar, zeige den Inhalt der Datei an
Überprüfen Sie die für den laufenden Java-Prozess festgelegten Optionen
Java (Zufallszahl)
[Android] [Java] Verwalten Sie den Status der CheckBox von ListView
[Java] Anzahl der Verbindungen, die zum Verschachteln von Transaktionen erforderlich sind
Informationen zur Beschreibungsreihenfolge der Java-Systemeigenschaften
Über die Idee anonymer Klassen in Java
Die Reihenfolge der Java-Methodenmodifikatoren ist festgelegt
[Java] Zugriff auf die signierte URL von s3 (signierte Version 2)
Die Geschichte des Lernens von Java in der ersten Programmierung
Messen Sie die Größe eines Ordners mit Java
[Java] Ermittelt die Länge der Ersatzpaarzeichenfolge
[Java] Der verwirrende Teil von String und StringBuilder
[Hinweis] Java: Messen Sie die Geschwindigkeit der Zeichenfolgenverkettung
Ich habe die Eigenschaften von Java und .NET verglichen
Spüren Sie den Lauf der Zeit auch in Java
Lassen Sie uns das Gefühl von Spring Boot + Swagger 2.0 überprüfen
Berechnen Sie die Ähnlichkeitsbewertung von Zeichenketten mit JAVA
Probieren Sie Progate Free Edition [Java II]
[Java] Ist es nicht erforderlich, "Identität" bei der Implementierung der equals () -Methode zu überprüfen?
[Java / Kotlin] Ändern Sie die Größe unter Berücksichtigung der Ausrichtung des Bildes
[Java] Beurteilung durch Eingabe von Zeichen in das Terminal