Copy kode kodenya sebagai berikut:
/**
* Nama: Temukan nomor dan jumlah pengulangan elemen dalam array yang paling banyak
* Keterangan:
* Elemen dalam array dapat diulang. Metode ini dapat menemukan angka dengan pengulangan terbanyak dan menampilkan berapa kali pengulangan tersebut.
* Tapi kamu perlu tahu apa elemen terbesar dalam array ini. Jika kamu tidak bisa menentukannya, itu akan menjadi tragedi~
*
* @param array target array;
* Nilai maksimum data dalam array maks;
* @return Mengembalikan kumpulan peta yang berisi angka dengan pengulangan (nilai) terbanyak dan jumlah pengulangan (maxCount);
* Pengecualian internal terjadi dan mengembalikan 0 secara default;
* @melempar
* @Penulis Yang Yuan
*/
peta statis publik<String, Integer> arraySearch(int[] array,int max){
//pengumpulan hasil
Peta<String, Integer> hasilMap = HashMap baru<String, Integer>();
//Jumlah pengulangan
int jumlah maksimal = 0;
//Nomor dengan jumlah pengulangan terbanyak
nilai int = 0;
mencoba{
//Inisialisasi array data untuk menyimpan jumlah kemunculan setiap elemen
int[] dataArray = int baru[maks+1];
//Jelajahi larik yang ingin ditemukan, gunakan setiap elemen sebagai subskrip, temukan langsung larik data, dan lakukan operasi +1 untuk menunjukkan bahwa larik tersebut muncul satu kali
untuk(ke dalam i : susunan){
dataArray[i]++;
}
//Temukan nilai maksimum dalam array data
for(int i=0;i<dataArray.panjang;i++){
if(dataArray[i]>maxCount){
maxCount=dataArray[i];
nilai=saya;
}
}
}tangkap (Pengecualian e) {}
resultMap.put("maxCount", maxCount);
resultMap.put("nilai",nilai);
kembalikan hasilMap;
}
/**
* Nama: Bandingkan ukuran dua senar
* Deskripsi: Aturan perbandingan konsisten dengan urutan berdasarkan efek dalam database;
* Null secara otomatis dikonversi menjadi kosong, dan string kosong adalah yang terbesar;
*
* @param first String pertama yang dibandingkan;
* kedua String kedua yang akan dibandingkan;
* @return first lebih besar dari second dan mengembalikan angka positif;
* pertama sama dengan kedua dan menghasilkan 0;
* yang pertama kurang dari yang kedua dan mengembalikan angka negatif;
* Pengecualian internal mengembalikan 0 secara default;
* Nilai yang dikembalikan bukanlah nilai tetap~~;
* @melempar
* @Penulis Yang Yuan
*/
public static int bandingkanString(String pertama,String kedua){
int hasil = 0;
mencoba{
//null untuk mengosongkan
pertama = pertama==null?":pertama;
kedua = kedua==null?"":kedua;
//Rekam terlebih dahulu panjang string untuk menghindari pembacaan berulang
int firstLength=pertama.panjang();
int secondLength=kedua.panjang();
//Menangani kasus khusus yang berisi string kosong
if("".sama dengan(pertama) || "".sama dengan(kedua)){
//Siapa yang lebih tinggi dan siapa yang lebih kecil?
hasil = panjang kedua-panjang pertama;
}kalau tidak{
//Ruang sementara digunakan untuk menyimpan jumlah kode ascii
int hitungan pertama = 0;
int hitungan detik = 0;
// Gunakan operasi murni untuk mencari bilangan terkecil dari dua bilangan, yang sebenarnya adalah bt
int minLength = (secondLength*(firstLength/secondLength) + firstLength*(secondLength/firstLength))/(firstLength/secondLength + secondLength/firstLength);
//Mencegat sedikit demi sedikit sesuai dengan jumlah digit terpendek dalam dua string untuk mencegah keluar batas
untuk(int i=0;i<minLength;i++){
//Temukan jumlah kode ascii
firstCount+=first.substring(i,i+1).getBytes()[0];
secondCount+=detik.substring(i,i+1).getBytes()[0];
//Jumlahnya tidak sama, menandakan ukurannya telah dibandingkan
if(Hitungan pertama!=Hitungan kedua){
merusak;
}
}
if(Hitungan pertama==Hitungan kedua){
//Panjangnya terlalu panjang
hasil = Panjang pertama-Panjang kedua;
}kalau tidak{
//Jumlahnya sebesar mungkin
hasil = Hitungan pertama-Hitungan kedua;
}
}
}tangkap (Pengecualian e) {}
hasil pengembalian;
}