Kopieren Sie den Codecode wie folgt:
/**
* Name: Ermitteln Sie die Anzahl und die Anzahl der Wiederholungen der Elemente im Array, die am häufigsten vorkommen
* Beschreibung:
* Die Elemente im Array können wiederholt werden. Diese Methode kann die Zahl mit den meisten Wiederholungen finden und zurückgeben, wie oft sie wiederholt wurde.
* Aber Sie müssen wissen, was das größte Element in diesem Array ist. Wenn Sie es nicht bestimmen können, wird es eine Tragödie sein
*
* @param Array Zielarray;
* Der maximale Wert der Daten im Max-Array;
* @return Gibt eine Kartensammlung zurück, die die Zahl mit den meisten Wiederholungen (Wert) und die Anzahl der Wiederholungen (maxCount) enthält;
* Eine interne Ausnahme tritt auf und gibt standardmäßig 0 zurück.
* @throws
* @Autor Yang Yuan
*/
öffentliche statische Map<String, Integer> arraySearch(int[] array,int max){
//Ergebnissammlung
Map<String, Integer> resultMap = new HashMap<String, Integer>();
//Anzahl der Wiederholungen
int maxCount = 0;
//Zahl mit den meisten Wiederholungen
int-Wert = 0;
versuchen{
//Initialisieren Sie das Datenarray, um die Anzahl der Vorkommen jedes Elements zu speichern
int[] dataArray = new int[max+1];
// Durchlaufen Sie das zu findende Array, verwenden Sie jedes Element als Index, suchen Sie direkt das Datenarray und führen Sie eine +1-Operation aus, um anzugeben, dass es einmal angezeigt wird
for(int i : array){
dataArray[i]++;
}
//Finden Sie den Maximalwert im Datenarray
for(int i=0;i<dataArray.length;i++){
if(dataArray[i]>maxCount){
maxCount=dataArray[i];
Wert=i;
}
}
}catch (Ausnahme e) {}
resultMap.put("maxCount", maxCount);
resultMap.put("value", value);
return resultMap;
}
/**
* Name: Vergleichen Sie die Größen zweier Zeichenfolgen
* Beschreibung: Die Vergleichsregeln stimmen mit der Reihenfolge nach Wirkung in der Datenbank überein;
* Null wird automatisch in leer konvertiert, und die leere Zeichenfolge ist die größte.
*
* @param first Die erste zu vergleichende Zeichenfolge;
* second Die zweite zu vergleichende Zeichenfolge;
* @return first ist größer als second und gibt eine positive Zahl zurück;
* first ist gleich second und gibt 0 zurück;
* first ist kleiner als second und gibt eine negative Zahl zurück;
* Interne Ausnahme gibt standardmäßig 0 zurück;
* Der Rückgabewert ist kein fester Wert ~~;
* @throws
* @Autor Yang Yuan
*/
public static int CompareString(String First,String Second){
int Ergebnis = 0;
versuchen{
//null zu leer
first = first==null?"":first;
second = second==null?"":second;
// Zeichnen Sie die Zeichenfolgenlänge vorab auf, um wiederholtes Lesen zu vermeiden
int firstLength=first.length();
int secondLength=second.length();
//Sonderfälle behandeln, die leere Zeichenfolgen enthalten
if("".equals(first) || "".equals(second)){
//Wer ist größer und wer kleiner?
result = secondLength-firstLength;
}anders{
//Temporärer Speicherplatz zum Speichern der Summe der ASCII-Codes
int firstCount = 0;
int secondCount = 0;
// Verwenden Sie reine Operationen, um die kleinere der beiden Zahlen zu finden, die tatsächlich bt ist
int minLength = (secondLength*(firstLength/secondLength) + firstLength*(secondLength/firstLength))/(firstLength/secondLength + secondLength/firstLength);
// Stück für Stück entsprechend der kürzeren Anzahl von Ziffern in den beiden Zeichenfolgen abfangen, um außerhalb der Grenzen zu verhindern
for(int i=0;i<minLength;i++){
//Finde die ASCII-Codesumme
firstCount+=first.substring(i,i+1).getBytes()[0];
secondCount+=second.substring(i,i+1).getBytes()[0];
//Die Summe ist nicht gleich, was darauf hinweist, dass die Größe verglichen wurde
if(firstCount!=secondCount){
brechen;
}
}
if(firstCount==secondCount){
//Die Länge ist zu lang
result = firstLength-secondLength;
}anders{
//Die Summe ist so groß wie möglich
result = firstCount-secondCount;
}
}
}catch (Ausnahme e) {}
Ergebnis zurückgeben;
}