Copiez le code comme suit :
/**
* Nom : Trouver le nombre et le nombre de répétitions des éléments du tableau qui sont les plus nombreux
* Description:
* Les éléments du tableau peuvent être répétés. Cette méthode peut trouver le nombre avec le plus de répétitions et renvoyer combien de fois il a été répété.
* Mais vous devez savoir quel est le plus grand élément de ce tableau. Si vous ne parvenez pas à le déterminer, ce sera une tragédie ~.
*
* Tableau cible @param array ;
* La valeur maximale des données dans le tableau max ;
* @return Renvoie une collection de cartes contenant le nombre avec le plus de répétitions (value) et le nombre de répétitions (maxCount) ;
* Une exception interne se produit et renvoie 0 par défaut ;
* @lancements
* @Auteur Yang Yuan
*/
public static Map<String, Integer> arraySearch(int[] array,int max){
//collecte des résultats
Map<String, Integer> resultMap = new HashMap<String, Integer>();
//Nombre de répétitions
int maxCount = 0 ;
//Numéro avec le plus grand nombre de répétitions
valeur entière = 0 ;
essayer{
// Initialise le tableau de données pour stocker le nombre d'occurrences de chaque élément
int[] dataArray = nouveau int[max+1];
//Parcourez le tableau à trouver, utilisez chaque élément comme indice, localisez directement le tableau de données et effectuez une opération +1 pour indiquer qu'il apparaît une fois
pour(int i : tableau){
dataArray[i]++;
}
//Trouver la valeur maximale dans le tableau de données
pour(int i=0;i<dataArray.length;i++){
si(dataArray[i]>maxCount){
maxCount=dataArray[i];
valeur=i ;
}
}
}attraper (Exception e) {}
resultMap.put("maxCount", maxCount);
resultMap.put("valeur", valeur);
retourner resultMap ;
}
/**
* Nom : comparez les tailles de deux chaînes
* Description : Les règles de comparaison sont cohérentes avec l'ordre par effet dans la base de données ;
* Null est automatiquement converti en vide et la chaîne vide est la plus grande ;
*
* @param first La première chaîne à comparer ;
* second La deuxième chaîne à comparer ;
* @return first est supérieur à second et renvoie un nombre positif ;
* first est égal à second et renvoie 0 ;
* first est inférieur à second et renvoie un nombre négatif ;
* L'exception interne renvoie 0 par défaut ;
* La valeur de retour n'est pas une valeur fixe~~ ;
* @lancements
* @Auteur Yang Yuan
*/
public static int compareString (Chaîne en premier, Chaîne en second){
résultat entier = 0 ;
essayer{
// nul pour vider
premier = premier==null?"":premier;
seconde = seconde==null?"":seconde;
//Pré-enregistrez la longueur de la chaîne pour éviter une lecture répétée
int firstLength=first.length();
int secondeLength=seconde.length();
//Gérer les cas particuliers contenant des chaînes vides
if("".equals(first) || "".equals(second)){
//Qui est le plus grand et qui est le plus petit ?
résultat = secondeLongueur-premierLongueur ;
}autre{
//Espace temporaire utilisé pour stocker la somme des codes ascii
int premierCompte = 0 ;
int secondCount = 0 ;
// Utilise des opérations pures pour trouver le plus petit des deux nombres, qui est en réalité bt
int minLength = (secondLength*(firstLength/secondLength) + firstLength*(secondLength/firstLength))/(firstLength/secondLength + secondLength/firstLength);
//Intercepter petit à petit en fonction du nombre de chiffres le plus court dans les deux chaînes pour éviter les hors limites
pour(int i=0;i<minLength;i++){
//Trouver la somme du code ascii
firstCount+=first.substring(i,i+1).getBytes()[0];
secondCount+=second.substring(i,i+1).getBytes()[0];
//La somme n'est pas égale, indiquant que la taille a été comparée
si(firstCount!=secondCount){
casser;
}
}
si(firstCount==secondCount){
//La longueur est trop longue
résultat = firstLength-secondLength ;
}autre{
//La somme est la plus grosse possible
résultat = firstCount-secondCount ;
}
}
}attraper (Exception e) {}
renvoyer le résultat ;
}