java求数组元素重复次数和java字符串比较大小示例
发布时间:2023-08-04 22:20:02
/**
* 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;
}


猜你喜欢
- ArrayList实现班级信息管理系统,供大家参考,具体内容如下代码如下:import java.util.*;public class D
- 我们还是来讨论c++吧,这几年在c++里面玩代码自动生成技术,而预处理是不可避免,也是不可或缺的重要工具。虽然boost pp预处理库在宏的
- 本文实例为大家分享了Java实现置换密码加密解密,供大家参考,具体内容如下思路置换密码只不过是简单的换位而已,这里写的是一个分组长度为7的置
- Elasticsearch 通常如何工作?我们将文档索引到 Elasticsearch 中并对其运行查询以获得满足提供的搜索条件的文档。 我
- 在Android中要让一个程序的界面始终保持一个方向,不随手机方向转动而变化的办法: 只要在AndroidManifest.xml里面配置一
- package com.example.myapi.email;import java.util.ArrayList;import java
- 一. 多任务和Task、启动模式Android 手机在早期,下方通常会内置三个实体的触摸按键,分别是:桌面、菜单、返回。大概在Android
- [LeetCode] 131.Palindrome Partitioning 拆分回文串Given a string s, par
- 背景:SpringMVC如何响应json格式的数据?技术实现方式1:在Controller使用@RestController注解方式2:在C
- 本文实例讲述了Android AutoCompleteTextView连接数据库自动提示的方法。分享给大家供大家参考,具体如下:这个简单例子
- 方法一:res/values文件夹下建立styles.xml:<?xml version=“1.0″ encoding=“utf-8″
- 若 Spring 检测到 bean 实现了 Aware 接口,则会为其注入相应的依赖。所以通过让bean 实现 Aware 接口,则能在 b
- 前言回想写过的图书管理系统、租房系统、电影院卖票系统都是基于原生的JavaSE、OOP,没有用到任何框架,在层与层的关系中一个类要想获得与其
- 前言最近在开发项目的时候涉及到复杂的动态条件查询,但是mybaits本身不支持if elseif类似的判断但是我们可以间接通过 chose
- 文档中可通过应用不同的字体来呈现不一样的视觉效果,通过字体来实现文档布局、排版等设计需要。应用字体时,可在创建文档时指定字体,也可以用新字体
- 本文对原文:android实现计步功能初探,计步项目进行了精简,移除了进程服务和计时、守护进程、数据库保存等等,方便扩展功能。本文源码:ht
- 前言基于SpingBoot框架中, 我们随处可以见的便是各种各样的功能注解, 注解的实现原理AOP之前有说过(翻看本系列的前面几章即可),
- 先来看看效果:一、添加依赖库的步骤1.项目的gradle文件内的做以下改动allprojects { repositories
- 一、BIO、NIO、AIO学习Netty需要了解BIO、NIO、AIO,具体可参考Java网络编程IO模型 — BIO、
- 一、JMeter后端 * 介绍说到JMeter后端 * ,必须要从源头BackendListener开始说,最后延伸到我们需要的Backen