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 ...
随机推荐
- Spring-Boot + MyBatis-Plus 踩坑记录
这两天在学SpringBoot+MyBatis的开发,配置开发环境和DEMO的过程中踩了很多坑,在这里记录一下. 我的开发环境是idea + JDK 1.8.0.211. 首先展示一下demo的项目整 ...
- Kafka 学习之路(四)—— Kafka消费者详解
一.消费者和消费者群组 在Kafka中,消费者通常是消费者群组的一部分,多个消费者群组共同读取同一个主题时,彼此之间互不影响.Kafka之所以要引入消费者群组这个概念是因为Kafka消费者经常会做一些 ...
- docker search/pull 报错
docker报错 Get https://registry-1.docker.io/v2/: x509: certificate has expired or is not yet valid 这种错 ...
- SQL经典练习题50--mysql
--1.学生表 Student(Sid,Sname,Sage,Ssex)? --Sid 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表? Course(Cid, ...
- kettle —— 从 oracle 到 oracle的坑
公司有个项目,是使用kettle从oracle上统计,再将结果跟oracle中目标表进行对比更新.接手后,走了一些弯路,中间各种尝试都不尽如人意,也学了kettle的一些组件的用法.正好趁着机会记录 ...
- Flink中的状态与容错
1.概述 Flink支持有状态计算,根据支持得不同状态类型,分别有Keyed State和Operator State.针对状态数据得持久化,Flink提供了Checkpoint机制处理:针对状态数据 ...
- CentOS java生成文件并赋予权限的问题
2.检查文件是否允许: file.canExecute(); – return true, file is executable; false is not. file.canWrite(); – r ...
- Ural 2072:Kirill the Gardener 3(DP)
http://acm.timus.ru/problem.aspx?space=1&num=2072 题意:有n朵花,每朵花有一个饥渴值.现在浇花,优先浇饥渴值小的(即从小到大浇),浇花需要耗费 ...
- Java程序运行原理分析
class文件内容 class文件包含Java程序执行的字节码 数据严格按照格式紧凑排列在class文件的二进制流,中间无分割符 文件开头有一个0xcafebabe(16进制)特殊的标志 JVM运行时 ...
- scrapy基础知识之 关于爬虫部分一些建议:
1.尽量减少请求次数,能抓列表页就不抓详情页,减轻服务器压力,程序员都是混口饭吃不容易. 2.不要只看 Web 网站,还有手机 App 和 H5,这样的反爬虫措施一般比较少. 3.实际应用时候,一般防 ...