다음과 같이 코드 코드를 복사합니다.
/**
* 이름: 배열에서 가장 많은 요소의 개수와 반복 횟수를 찾습니다.
* 설명:
* 배열의 요소는 반복될 수 있습니다. 이 방법을 사용하면 가장 많이 반복된 숫자를 찾아 몇 번 반복되었는지 반환할 수 있습니다.
* 하지만 이 배열에서 가장 큰 요소가 무엇인지 알아야 합니다. 그것을 결정할 수 없다면 비극이 될 것입니다~
*
* @param 배열 대상 배열;
* max 배열에 있는 데이터의 최대값입니다.
* @return 가장 많은 반복 횟수(value)와 반복 횟수(maxCount)가 포함된 맵 컬렉션을 반환합니다.
* 내부 예외가 발생하고 기본적으로 0을 반환합니다.
* @던지다
* @저자 양위안
*/
공개 정적 맵<String, Integer> arraySearch(int[] 배열,int max){
//결과 수집
Map<String, Integer> resultMap = new HashMap<String, Integer>();
//반복 횟수
int maxCount = 0;
//반복 횟수가 가장 많은 숫자
int 값 = 0;
노력하다{
//데이터 배열을 초기화하여 각 요소의 발생 횟수를 저장합니다.
int[] dataArray = 새로운 int[max+1];
//찾을 배열을 탐색하고 각 요소를 첨자로 사용하고 데이터 배열을 직접 찾은 다음 +1 연산을 수행하여 한 번 나타남을 나타냅니다.
for(int i : 배열){
데이터Array[i]++;
}
//데이터 배열에서 최대값 찾기
for(int i=0;i<dataArray.length;i++){
if(dataArray[i]>maxCount){
maxCount=dataArray[i];
값=i;
}
}
}catch(예외 e) {}
resultMap.put("maxCount", maxCount);
resultMap.put("값", 값);
결과맵을 반환합니다.
}
/**
* 이름: 두 문자열의 크기 비교
* 설명: 비교 규칙은 데이터베이스의 효과별 순서와 일치합니다.
* Null은 자동으로 빈 문자열로 변환되며 빈 문자열이 가장 큽니다.
*
* @param first 비교할 첫 번째 문자열입니다.
* second 비교할 두 번째 문자열입니다.
* @return first는 second보다 크고 양수를 반환합니다.
* 첫 번째는 두 번째와 동일하며 0을 반환합니다.
* first는 second보다 작고 음수를 반환합니다.
* 내부 예외는 기본적으로 0을 반환합니다.
* 반환값은 고정값이 아닙니다~~;
* @던지다
* @저자 양위안
*/
public static int CompareString(문자열 먼저, 문자열 두 번째){
정수 결과 = 0;
노력하다{
//비우려면 null
첫 번째 = 첫 번째==null?"":첫 번째;
두 번째 = 두 번째==null?"":두 번째;
//반복 읽기를 방지하기 위해 문자열 길이를 미리 기록해 둡니다.
int firstLength=first.length();
int secondLength=second.length();
//빈 문자열이 포함된 특수한 경우를 처리합니다.
if("".equals(첫 번째) || "".equals(두 번째)){
//누가 더 크고 누가 더 작나요?
결과 = secondLength-firstLength;
}또 다른{
//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(첫 번째카운트!=두 번째카운트){
부서지다;
}
}
if(첫번째카운트==두번째카운트){
//길이가 너무 깁니다.
결과 = firstLength-secondLength;
}또 다른{
//합계는 가능한 한 크다
결과 = firstCount-secondCount;
}
}
}catch(예외 e) {}
결과 반환;
}