10w数组去重,排序,找最多出现次数
配置在博客底部
主函数
package ooDay11.zy13; import ooDay11.zy13.hanshu.GetKeyList;
import ooDay11.zy13.hanshu.GetMaxValue;
import ooDay11.zy13.hanshu.HashCun;
import ooDay11.zy13.hanshu.Random_1000; import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.TreeSet; public class shuzu_0201HashMap {
public static void main(String[] args){
//随机生成100000个数
Integer[] array = Random_1000.Random_1000(100000);
//去重
TreeSet<Integer> tset = new TreeSet<Integer>(Arrays.asList(array));
Iterator i = tset.iterator();
while (i.hasNext()){
System.out.print(i.next() + " ");
}
System.out.println();
System.out.println("------------------------------");
System.out.println("最大次数"); //将出现的数字和其出现的次数存入hashmap中
HashMap<Integer,Integer> hashMap = HashCun.HashCun(array);
//System.out.println(hashMap.entrySet());
Object a = GetMaxValue.GetMaxValue(hashMap);
System.out.println("其中数字出现次数最大的数的出现次数为"+a);
int b = Integer.parseInt(String.valueOf(a));
System.out.println("获取所有的最大出现次数的" + GetKeyList.GetKeyList(hashMap,b)); } } 得到出现次数最多的多个key值
package ooDay11.zy13.hanshu; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
//这里用一个List列表来存储得到的key值,并返回改list列表
//该函数里边传入的参数一个为hashmap,另外一个为最大的数(即出现次数最多的数的出现次数)
//用for循环遍历(java5的新特性)
public class GetKeyList {
public static List<Integer> GetKeyList(HashMap<Integer,Integer> hashMap, int MaxValue){
List<Integer> list = new ArrayList<>();
for(Integer getKey : hashMap.keySet()){
if (hashMap.get(getKey).equals(MaxValue)){
list.add(getKey);
}
}
return list;
}
} 求出出现次数最多的出现次数
package ooDay11.zy13.hanshu; import java.sql.Array;
import java.util.Arrays;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
//用collection来收集Map中的所有value值
//接着将其转化为Object对象数组进行排序
//最后返回最大的value
public class GetMaxValue {
public static Object GetMaxValue(Map<Integer,Integer> map){
Collection<Integer> collection = map.values();
Object[] array = collection.toArray();
Arrays.sort(array);
return array[array.length-1];
}
} 将数组存入hashmap中
package ooDay11.zy13.hanshu; import java.util.HashMap;
//将数组存放在hashmap中,原因有两点:
//1.hasMap具有两个值相当于二维数组
//2.不用多次循环遍历查找,时间复杂度为1,节省时间
public class HashCun {
public static HashMap<Integer,Integer> HashCun(Integer[] array){
HashMap<Integer,Integer> hashMap = new HashMap<>();
int num = 1;
for (int j = 0; j < array.length; j++) {
if (hashMap.isEmpty()){
hashMap.put(array[j],num);
}else if (hashMap.containsKey(array[j])){
int a = hashMap.get(array[j]);
hashMap.replace(array[j],a+1);
}else {
hashMap.put(array[j],num);
}
}
return hashMap;
}
} 10万个数随机赋值
package ooDay11.zy13.hanshu;
//就是将一个数组随机赋值
//并且其值在1-10000之间,用到了do-while循环
//求求你让我过嘎嘎嘎嘎嘎过过过过过过过过过过过过过过过过过过过过过过过过过过过过过过过过过过过过过过过过过
public class Random_1000 {
public static Integer[] Random_1000(int n){
Integer[] a = new Integer[n] ;
for (int i = 0; i < n; i++) {
do {
a[i] = (int) (Math.random()*10000);
}while (a[i] ==0);
} return a;
}
}

10w数组去重,排序,找最多出现次数的更多相关文章
- 10w数组去重,排序,找最多出现次数(精华)
package cn.tedu.javaweb.test; import java.util.*; /* * @author XueWeiWei * @date 2019/6/11 8:19 */@S ...
- js数组去重排序(封装方法)
<script type="text/javascript"> // arr代表数组,index代表下标 function lihua(arr, index){ arr ...
- 数组去重,排序,重复次数,两个数组合并,两个数组去重,map(),filter(),reduce()
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- majority element(数组中找出出现次数最多的元素)
Given an array of size n, find the majority element. The majority element is the element that appear ...
- js数组去重,并统计最多项算法
从事了一段时间的前端开发,今天写了一个数组去重,并统计最多项的方法,目前只支持数组的项都是数字. 由于本人能力有限,希望能得到网友的指正!如有问题或者更好的实现思路,也欢迎大家和我讨论!代码如下: f ...
- 从一亿个ip找出出现次数最多的IP(分治法)
/* 1,hash散列 2,找到每个块出现次数最多的(默认出现均匀)—–>可以用字典树 3,在每个块出现最多的数据中挑选出最大的为结果 */ 问题一: 怎么在海量数据中找出重复次数最多的一个 算 ...
- 笔试算法题(30):从已排序数组中确定数字出现的次数 & 最大公共子串和最大公共序列(LCS)
出题:在已经排序的数组中,找出给定数字出现的次数: 分析: 解法1:由于数组已经排序,所以可以考虑使用二分查找确定给定数字A的第一个出现的位置m和最后一个出现的位置n,最后m-n+1就是A出现的次数: ...
- JS 数组常见操作汇总,数组去重、降维、排序、多数组合并实现思路整理
壹 ❀ 引 JavaScript开发中数组加工极为常见,其次在面试中被问及的概率也特别高,一直想整理一篇关于数组常见操作的文章,本文也算了却心愿了. 说在前面,文中的实现并非最佳,实现虽然有很多种,但 ...
- 数组-去重、排序方法、json排序
1.数组去重 /*方法一: 1,'1' 会被认为是相同的; 所有hash对象,如:{x;1},{y:1}会被认为是相同的 //10ms */ Array.prototype.unique=functi ...
随机推荐
- hgoi#20190516
T1-Buying A House 给你一个长度为n的序列a,给你目标房子m,最多花的钱k 如果a[i]为0,这座房子无法购买,否则可以购买,求能买的距离目标房子最近的房子,输出最小距离 两座房子之间 ...
- ABP开发框架前后端开发系列---(11)菜单的动态管理
在前面随笔<ABP开发框架前后端开发系列---(9)ABP框架的权限控制管理>中介绍了基于ABP框架服务构建的Winform客户端,客户端通过Web API调用的方式进行获取数据,从而实现 ...
- 移动端使用rem.js,解决rem.js 行内元素占位问题
父级元素: letter-spacing: -0.5em;font-size: 0; 子级元素: letter-spacing: normal; display: inline-block; vert ...
- http协议之状态码
=================状态码,状态文字======================== 状态码:用来反应服务器的响应状态 状态文字:是用来说明状态码的. 状态码:可以分为这5个大的部分 - ...
- Logback详细整理,基于springboot的日志配置
Logback的配置介绍: 1.Logger.appender及layout Logger作为日志的记录器,把它关联到应用的对应的context上后,主要用于存放日志对象,也可以定义日志类型.级别. ...
- solr 重要的知识点
1 solr 查询参数说明 常用 ) q - 查询字符串,必须的. ) fl - 指定返回那些字段内容,用逗号或空格分隔多个. ) start - 返回第一条记录在完整找到结果中的偏移位置, 开始,一 ...
- python查询elasticsearch(Query DSL) 实例
import datetime import sys import getopt import hashlib from elasticsearch import Elasticsearch &quo ...
- git简单使用-GitHub
本文描述window下如何使用git工具,操作GitHub远程代码库 一,准备工作: 1,安装git工具,一路默认next安装即可,下载地址 2,注册账号或者创建厂库(已有忽略) 注册账号后,创建仓库 ...
- springboot配置文件外置处理
前言: 在springboot项目中,一般的配置文件都在resource/config下面,它可以以两种方式存在,一种是yml,一种是properties方式. 当运维和开发分开的时候,比如连接mys ...
- Python PyQT5的入门使用
Python 3+ PyQT5的入门使用 窗口类型介绍 QMainWindow,QWidget和QDialog都是用来创建窗口的.可以直接使用也可以继承后再使用. QMainWindow 该类窗口可以 ...