程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> java求數組元素反復次數和java字符串比擬年夜小示例

java求數組元素反復次數和java字符串比擬年夜小示例

編輯:關於JAVA

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;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved