配置在博客底部

主函数

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数组去重,排序,找最多出现次数的更多相关文章

  1. 10w数组去重,排序,找最多出现次数(精华)

    package cn.tedu.javaweb.test; import java.util.*; /* * @author XueWeiWei * @date 2019/6/11 8:19 */@S ...

  2. js数组去重排序(封装方法)

    <script type="text/javascript"> // arr代表数组,index代表下标 function lihua(arr, index){ arr ...

  3. 数组去重,排序,重复次数,两个数组合并,两个数组去重,map(),filter(),reduce()

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. majority element(数组中找出出现次数最多的元素)

    Given an array of size n, find the majority element. The majority element is the element that appear ...

  5. js数组去重,并统计最多项算法

    从事了一段时间的前端开发,今天写了一个数组去重,并统计最多项的方法,目前只支持数组的项都是数字. 由于本人能力有限,希望能得到网友的指正!如有问题或者更好的实现思路,也欢迎大家和我讨论!代码如下: f ...

  6. 从一亿个ip找出出现次数最多的IP(分治法)

    /* 1,hash散列 2,找到每个块出现次数最多的(默认出现均匀)—–>可以用字典树 3,在每个块出现最多的数据中挑选出最大的为结果 */ 问题一: 怎么在海量数据中找出重复次数最多的一个 算 ...

  7. 笔试算法题(30):从已排序数组中确定数字出现的次数 & 最大公共子串和最大公共序列(LCS)

    出题:在已经排序的数组中,找出给定数字出现的次数: 分析: 解法1:由于数组已经排序,所以可以考虑使用二分查找确定给定数字A的第一个出现的位置m和最后一个出现的位置n,最后m-n+1就是A出现的次数: ...

  8. JS 数组常见操作汇总,数组去重、降维、排序、多数组合并实现思路整理

    壹 ❀ 引 JavaScript开发中数组加工极为常见,其次在面试中被问及的概率也特别高,一直想整理一篇关于数组常见操作的文章,本文也算了却心愿了. 说在前面,文中的实现并非最佳,实现虽然有很多种,但 ...

  9. 数组-去重、排序方法、json排序

    1.数组去重 /*方法一: 1,'1' 会被认为是相同的; 所有hash对象,如:{x;1},{y:1}会被认为是相同的 //10ms */ Array.prototype.unique=functi ...

随机推荐

  1. 高性能高并发网站架构,教你搭建Redis5缓存集群

    一.Redis集群介绍 Redis真的是一个优秀的技术,它是一种key-value形式的NoSQL内存数据库,由ANSI C编写,遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Val ...

  2. SpringBoot系列——加载自定义配置文件

    前言 SpringBoot启动时默认加载bootstrap.properties或bootstrap.yml(这两个优先级最高).application.properties或application. ...

  3. 获取Class的实例

    //1.调用运行时类本身的.class属性 Class<Person> class1 = Person.class; System.out.println(class1); //2.通过运 ...

  4. Github项目备份与更新

    需求 假如现在想对使用到的一些Github上的开源组件进行备份,采用自建Gitlab服务器的方式进行备份保存,并且组件需定时保持与Github更新. 总体步骤 组件备份- 整体步骤如下: a.搭建gi ...

  5. CSS中浮动的使用

    CSS有两个性质 第一个是 :继承性 第二个是:层叠性: 选择器的一种选择能力,谁的权重大就选谁 { 里面分两种情况: 分别是 选中和没选中. 1.选不中的情况下,走继承性,(font,color,t ...

  6. node.js + mssql 简易封装操作

    时间吧,总是这么凑巧,在我学习[node.js]还没几天,我的 Microsoft SQL Server Management Studio 18 就歇菜了,至于怎么歇菜的吧....它可能的意思就是想 ...

  7. HDU 1394:Minimum Inversion Number(线段树区间求和单点更新)

    http://acm.hdu.edu.cn/showproblem.php?pid=1394 Minimum Inversion Number Problem Description   The in ...

  8. js常用设计模式实现(一)单例模式

    前言 什么是设计模式 设计模式是一种能够被反复使用,符合面向对象特性的代码设计经验的总结,合理的使用设计模式能够让你得代码更容易维护和可靠 设计模式的类型共分为创建型模式,结构型模式,行为型模式三种 ...

  9. 探究Hybrid-APP技术原理

    探究Hybrid-APP技术原理 author: @TiffanysBear 背景 随着Web技术的发展和移动互联网的发展,Hybrid技术已经成为一种前端开发的主流技术方案.那什么是Hybrid A ...

  10. MySQL Explain查看执行计划

    这篇博客写的还是蛮全的 http://www.cnblogs.com/songwenjie/p/9409852.html 在执行SQL的时候,经常有些SQL未正确使用到索引,导致程序变慢,通过使用ex ...