java求數組元素反復次數和java字符串比擬年夜小示例。本站提示廣大學習愛好者:(java求數組元素反復次數和java字符串比擬年夜小示例)文章只能為提供參考,不一定能成為您想要的結果。以下是java求數組元素反復次數和java字符串比擬年夜小示例正文
/**
* Name: 求數組中元素反復次數對多的數和反復次數
* Description:
* 數組中的元素能夠會反復,這個辦法可以找出反復次數最多的數,同時可以前往反復了若干次。
* 但須要曉得這個數組中最年夜的元素是若干,假如沒法肯定,就喜劇啦~
*
* @param array目的數組;
* max數組中數據的最年夜值;
* @return 前往一個包括反復次數最多的數(value)和反復次數(maxCount)的map聚集;
* 外部湧現異常,默許前往0;
* @throws
* @Author 楊元
*/
public static Map<String, Integer> arraySearch(int[] array,int max){
//成果聚集
Map<String, Integer> resultMap = new HashMap<String, Integer>();
//反復的次數
int maxCount = 0;
//反復次數對多的數
int value = 0;
try{
//初始化數據數組,用來寄存每一個元素湧現的次數
int[] dataArray = new int[max+1];
//遍歷要查找的數組,以每一個元素為下標,直接定位數據數組,停止+1操作,表現湧現了一次
for(int i : array){
dataArray[i]++;
}
//找到數據數組中最年夜值
for(int i=0;i<dataArray.length;i++){
if(dataArray[i]>maxCount){
maxCount=dataArray[i];
value=i;
}
}
}catch (Exception e) {}
resultMap.put("maxCount", maxCount);
resultMap.put("value", value);
return resultMap;
}
/**
* Name: 比擬兩個字符串年夜小
* Description: 比擬的規矩和數據庫中的order by後果分歧;
* null主動轉為空,空字符串最年夜;
*
* @param first 要比擬的第一個字符串;
* second 要比擬的第二個字符串;
* @return first年夜於second前往負數;
* first等於second前往0;
* first小於second前往正數;
* 外部異常默許前往0;
* 前往值非固定值哦~~;
* @throws
* @Author 楊元
*/
public static int compareString(String first,String second){
int result = 0;
try{
//null轉空
first = first==null?"":first;
second = second==null?"":second;
//事後記載字符串長度,防止重復讀取
int firstLength=first.length();
int secondLength=second.length();
//處置含有空串的特別情形
if("".equals(first) || "".equals(second)){
//誰長誰小
result = secondLength-firstLength;
}else{
//暫時空間,用來寄存ascii碼總和
int firstCount = 0;
int secondCount = 0;
//用純運算得出兩個數中較小的數,其實是bt
int minLength = (secondLength*(firstLength/secondLength) + firstLength*(secondLength/firstLength))/(firstLength/secondLength + secondLength/firstLength);
//按兩個字符串中較短的位數去逐位截取,避免越界
for(int i=0;i<minLength;i++){
//求ascii碼和
firstCount+=first.substring(i,i+1).getBytes()[0];
secondCount+=second.substring(i,i+1).getBytes()[0];
//和不相等,解釋曾經比擬出了年夜小
if(firstCount!=secondCount){
break;
}
}
if(firstCount==secondCount){
//長度長的年夜
result = firstLength-secondLength;
}else{
//總和年夜的年夜
result = firstCount-secondCount;
}
}
}catch (Exception e) {}
return result;
}