[Java] Vérifiez le nombre d'occurrences de caractères

table des matières

--Introduction --Prémisse ―― Ce que vous voulez réaliser ――Ce que j'ai essayé --Problème

introduction

Soudain, je veux étudier Map and List! !! J'ai pensé </ b>, alors j'ai pensé aux problèmes et je l'ai fait. Je suis tombé sur les rôles et les conversions de Map et List. Même si je cherchais en ligne, je n'ai pas trouvé de bons résultats, alors j'ai créé le mien, alors j'écrirai un article.

supposition

―― Ce que vous voulez réaliser --Identification de la chaîne la plus fréquemment utilisée pour n entrée de chaîne arbitraire (n_1 n_2 n_3 ... ... n). ――Ce que j'ai essayé --Implemented [clé: chaîne de caractères d'entrée, valeur: nombre d'apparences] comme Map <String, Integer> map = Map ();.

  • Triez la carte par [valeur] et récupérez la toute première [clé]!

--Problème

  • Le système de cartes [HashMap, LinkedHashMap, TreeMap] n'a fondamentalement aucun ordre d'éléments. --Comme la carte [0], vous ne pouvez pas récupérer la valeur par index.

  • Solution

  • Vous pouvez obtenir la combinaison de la clé de carte et de la valeur en utilisant la classe Map.Entry.

  • Vous pouvez stocker des objets d'entrée dans la liste et les trier par valeur d'entrée de la liste [i].

Détails d'implémentation

Les contenus implémentés en fonction de la solution sont les suivants.

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) {

		//Détection d'entrée
		Scanner sc = new Scanner(System.in);
		String count = sc.nextLine();
		String[] line = sc.nextLine().split(" ");

		//Création de carte
		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);
			}
		}

		//Obtenir l'entrée de la carte → enregistrer dans la liste
		List<Entry<String, Integer>> list = new ArrayList<Entry<String, Integer>>();
		for (Map.Entry<String, Integer> entry : map.entrySet()){
				list.add(entry);
		}

		//Comparez la valeur de l'entrée dans la liste → Trier
		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();
		}
	}
}

À la fin

--Résumé ――Il est important d'être conscient du rôle de chaque classe --Map jette des fonctions à List lorsqu'un tableau associatif et un tableau de classement sont nécessaires «Parce que je ne pouvais pas faire cela, je n'ai pas compris la première fois que j'ai essayé de trier la carte.

  • Tâches futures
  • Le tri dans la liste est effectué par un tri à bulles alimenté par l'homme, mais il semble que vous puissiez utiliser Collection.sort ().
  • Quelque chose comme Comparator <> semble être utile.
  • Lien de référence ci-dessous
    • https://www.sejuku.net/blog/16176
    • http://lovedvoraklayout.hatenablog.com/entry/java-map-value-sort-2
    • https://teratail.com/questions/117328

Recommended Posts

[Java] Vérifiez le nombre d'occurrences de caractères
Commande pour vérifier le nombre et l'état des threads Java
[Java] Supprimer le nombre spécifié de caractères à la fin de StringBuilder
Vérifiez le contenu du magasin de certificats Java
[Java] Vérifiez la version JDK du fichier war construit
Vérifiez le comportement de Java Intrinsic Locks avec bpftrace
Comptez le nombre de chiffres après la virgule décimale en Java
[Java] Supprimer les éléments de la liste
[Rails] Vérifiez le contenu de l'objet
[Édition Java] Histoire de la sérialisation
Vérifiez la version de Cent OS
Vérifier l'état de migration des rails
L'origine des expressions Java lambda
Comment vérifier le contenu de la chaîne de caractères java de longueur fixe
Obtenez le résultat de POST en Java
Vérifiez le contenu des paramètres avec le levier
Examiner l'utilisation de la mémoire des éléments Java
[Java] Obtenez le jour d'un jour spécifique
Comparer les éléments d'un tableau (Java)
Comment déterminer le nombre de parallèles
[jour: 5] J'ai résumé les bases de Java
Quelles sont les fonctionnalités mises à jour de Java 13
Mesurez facilement la taille des objets Java
Retour sur les bases de Java
Sortie du livre "Introduction à Java"
À propos du nombre de threads de Completable Future
L'histoire de l'écriture de Java dans Emacs
Vérifiez la version du logiciel Web standard.
[Java] [Spring] Tester le comportement de l'enregistreur
Vérifiez le fonctionnement de l'interface à travers le thread
Augmenter dynamiquement le nombre d'éléments dans un tableau bidimensionnel Java (tableau multidimensionnel)
Comment trouver le nombre total de pages lors de la pagination en Java
Vérifiez l'enregistrement MX de l'adresse e-mail avec java et vérifiez le domaine
[Java] Vérifiez si la chaîne de caractères est composée uniquement de blancs (= Vierge)
Vérifiez la version de JDK installée et la version de JDK activée
L'histoire de la comparaison de chaînes de bas niveau en Java
[Java] Gestion des Java Beans dans la chaîne de méthodes
JAVA: jar, aar, affichez le contenu du fichier
Vérifiez les options définies pour le processus Java en cours d'exécution
java (nombre aléatoire)
[Android] [Java] Gérer l'état de CheckBox de ListView
[Java] Nombre de connexions requises lors de l'imbrication des transactions
A propos de l'ordre de description des propriétés système Java
À propos de l'idée des classes anonymes en Java
L'ordre des modificateurs de méthode Java est fixe
[Java] Accéder à l'URL signée de s3 (version signée 2)
L'histoire de l'apprentissage de Java dans la première programmation
Mesurer la taille d'un dossier avec Java
[Java] Obtenir la longueur de la chaîne de paire de substitution
[Java] La partie déroutante de String et StringBuilder
[Note] Java: mesure la vitesse de concaténation de chaînes
J'ai comparé les caractéristiques de Java et .NET
Ressentez le passage du temps même à Java
Vérifions la sensation de Spring Boot + Swagger 2.0
Calculer le score de similarité des chaînes de caractères avec JAVA
Essayez Progate Free Edition [Java II]
[Java] Est-il inutile de vérifier "l'identité" dans l'implémentation de la méthode equals ()?
[Java / Kotlin] Redimensionner en tenant compte de l'orientation de l'image
[Java] Jugement en saisissant des caractères dans le terminal