java求数组元素重复次数和java字符串比较大小示例

 更新时间:2014年04月30日 11:48:19   作者:  
这篇文章主要介绍了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;
}

相关文章

  • Mybatis之Mapper动态代理实例解析

    Mybatis之Mapper动态代理实例解析

    这篇文章主要介绍了Mybatis之Mapper动态代理实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • JPA之使用JPQL语句进行增删改查

    JPA之使用JPQL语句进行增删改查

    这篇文章主要介绍了JPA之使用JPQL语句进行增删改查,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Java中的字符串用法小结

    Java中的字符串用法小结

    这篇文章主要介绍了Java中的字符串用法,实例总结了java中关于字符串操作的各种常用的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • SpringBoot中JPA实现Sort排序的三种方式小结

    SpringBoot中JPA实现Sort排序的三种方式小结

    这篇文章主要介绍了SpringBoot中JPA实现Sort排序的三种方式小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java数据结构之图的原理与实现

    Java数据结构之图的原理与实现

    图(Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。本文将详细介绍图的原理及其代码实现,需要的可以参考一下
    2022-01-01
  • SpringBoot实现数据预热的方式小结

    SpringBoot实现数据预热的方式小结

    这里用到的数据预热,就是在项目启动时将一些数据量较大的数据加载到缓存中(笔者这里用的Redis),那么在项目启动有哪些方式可以实现数据预热呢,本文就来给大家讲讲几种实现数据预热的方式,需要的朋友可以参考下
    2023-09-09
  • JavaAgent的简单例子

    JavaAgent的简单例子

    这篇文章主要介绍了JavaAgent的简单例子,对JavaAgent感兴趣的同学,可以参考下
    2021-04-04
  • SpringBoot集成Jasypt敏感信息加密的操作方法

    SpringBoot集成Jasypt敏感信息加密的操作方法

    这篇文章主要介绍了SpringBoot集成Jasypt加密敏感信息,包括敏感信息加密的作用,项目集成Jasypt方式详解,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-05-05
  • Spring Boot中实现定时任务应用实践

    Spring Boot中实现定时任务应用实践

    定时任务一般是项目中都需要用到的,可以用于定时处理一些特殊的任务。下面这篇文章主要给大家介绍了关于Spring Boot中实现定时任务应用实践的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下。
    2018-05-05
  • scala 操作数据库的方法

    scala 操作数据库的方法

    这篇文章主要介绍了scala 操作数据库的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06

最新评论