1. package home.collection.arr;
  2.  
  3. import java.awt.Window.Type;
  4. import java.util.ArrayList;
  5. import java.util.Collections;
  6. import java.util.Comparator;
  7. import java.util.HashMap;
  8. import java.util.Iterator;
  9. import java.util.List;
  10. import java.util.Map;
  11. import java.util.Set;
  12. import java.util.Map.Entry;
  13.  
  14. public class HomeworkMap2 {
  15. public static void main(String[] args) {
  16. // 创建Map
  17. Map<Integer,Student> map = new HashMap<Integer,Student>();
  18. createStudets(20, map);
  19. // System.out.println(map);
  20.  
  21. List<Integer> scoreList = new ArrayList<Integer>();
  22. getAllScore(scoreList, map,1,null);
  23.  
  24. // 排序
  25. sortByScore(scoreList);
  26.  
  27. // 取前三位
  28. int[] maxScores = new int[3];
  29. for (int i = 0; i < maxScores.length; i++) {
  30. if (scoreList.get(i)>0) {
  31. maxScores[i]=scoreList.get(i);
  32. // System.out.println(maxScores[i]);
  33. }
  34. }
  35.  
  36. getAllScore(scoreList, map, 2, maxScores);
  37.  
  38. }
  39.  
  40. /**
  41. * @param count 创建学生的个数
  42. * @param map 存放学生的Map
  43. */
  44. public static void createStudets(int count,Map<Integer,Student> map){
  45. // 创建一部分students
  46. for (int i = 0; i < count; i++) {
  47. Student stu = new Student("lf"+i, 75+i);
  48. // student被添加到map中
  49. map.put(stu.getNumber(), stu);
  50. }
  51. }
  52. /**
  53. *
  54. * @param scoreList
  55. * @param map
  56. * @param method
  57. * @param maxScores
  58. */
  59. public static void getAllScore(List<Integer> scoreList,Map<Integer,Student> map,int method,int[] maxScores) {
  60. // 从Map取出score放进newList
  61. // 遍历
  62. // 取出Map中的键值对
  63. Set<Entry<Integer, Student>> entry = map.entrySet();
  64. // System.out.println(entry);
  65. // 遍历set(就是遍历Map)
  66. Iterator<Entry<Integer, Student>> it = entry.iterator();
  67. while (it.hasNext()) {
  68. // Entry key-value
  69. Entry<Integer, Student> e = it.next();
  70. Student s = e.getValue();
  71. if (method == 1) {
  72. scoreList.add(s.getScore());
  73. }else if (method == 2) {
  74. // 判断
  75. for (int i = 0; i < maxScores.length; i++) {
  76. if (s.getScore() == maxScores[i]) {
  77. System.out.println("第"+(i+1)+"名:"+s.getName()+" 分数:"+s.getScore());
  78. }
  79. }
  80. }
  81.  
  82. }
  83. // System.out.println(scoreList);
  84. }
  85. /**
  86. * 排序
  87. */
  88. public static void sortByScore(List<Integer> scoreList){
  89. Collections.sort(scoreList, new Comparator<Integer>() {
  90. public int compare(Integer num1,Integer num2) {
  91. return num2-num1;
  92. }
  93. });
  94. }
  95. }

Map的基本用法(Java)的更多相关文章

  1. HDU1004 Let the Balloon Rise(map的简单用法)

    Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...

  2. STL——map/unordered_map基础用法

    map /multimap map是STL里重要容器之一. 它的特性总结来讲就是:所有元素都会根据元素的键值key自动排序(也可根据自定义的仿函数进行自定义排序),其中的每个元素都是<key,  ...

  3. JOptionPane用法--java

    JOptionPane用法--java JOptionPane的简单应用: 1.首先引入包: import javax.swing.JOptionPane; 2.添加如下代码: Object[] op ...

  4. map的详细用法

     map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时 ...

  5. ES6中map和set用法

    ES6中map和set用法 --转载自廖雪峰的官方网站 一.map Map是一组键值对的结构,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用Array实现,需要两个Arra ...

  6. An internal error occurred during: "Map/Reducelocation status updater".java.lang.NullPointerException

    当我们运行wordcount代码时,出现报错,如下所示: An internal error occurred during: "Map/Reducelocation status upda ...

  7. map的详细用法 (转

    map的详细用法: map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能 力,由于这个特性,它完成有可能在我 ...

  8. map的常见用法

    map的常见用法 map 是什么? map是一组键值对的组合,通俗理解类似一种特殊的数组,a[key]=val,只不过数组元素的下标是任意一种类型,而且数组的元素的值也是任意一种类型.有点类似pyth ...

  9. Java map 详解 - 用法、遍历、排序、常用API等

    尊重原创: http://www.cnblogs.com/lzq198754/p/5780165.html 概要: java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 L ...

随机推荐

  1. Excel中如何在两个工作表中查找重复数据

    有时我们可能会在两种工作表中查找重复记录,当数据记录很多时,就必须通过简单的方法来实现.下面小编就与大家一起分享一下查看重复记录数据的方法,希望对大家有所帮助. 方法/步骤   为了讲解的需要,小编特 ...

  2. Open vSwitch使用案例扩展实验

    参考:Open vSwitch使用案例扩展实验 实验目的: 通过python脚本调用OpenvSwitch命令: 学习Mininet基于python脚本创建拓扑的实现: 进一步深度使用"ov ...

  3. 为Ubuntu Server安装gnome图形桌面环境

    Ubuntu Server版默认都没有图形桌面(GUI),但是可以安装,以下共有两种安装方法. 一.安装全部Gnome桌面环境 Ubuntu系列桌面实际上有几种桌面应用程序,包括Ubuntu-desk ...

  4. nginx gzip 模块配置

    #gzip模块设置 gzip on; #开启gzip压缩输出 gzip_min_length 1k; #最小压缩文件大小 gzip_buffers 4 16k; #压缩缓冲区 gzip_http_ve ...

  5. 解决ORA-00054资源正忙的问题

    有时候在drop表或者其他对象的时候,会遇到ORA-00054:资源正忙,要求指定NOWAIT(中文字符集)或者ORA-00054: resource busy and acquire with NO ...

  6. LR调用动态链接库DLL

    什么是动态库? 动态库一般又叫动态链接库(DLL),是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库. 动态链接提供了一种方法 ,使进程可以 ...

  7. UML学习

    学习链接:http://blog.csdn.net/wangyongxia921/article/category/1293975 感谢原文作者.

  8. Wordpress添加关键词和描述

    找到主题的header.php文件,然后在其<head>标签内加入加一下代码: 详细版 <?php $description = ''; $keywords = ''; if (is ...

  9. 20145211 《Java程序设计》第7周学习总结——沧海横流

    教材学习内容总结 Lambda Arrays的sort()方法可以用来排序,在使用sort()时,需要操作java.util.Comparator来进行说明,这样一来,语法就显得有些冗长.在JDK8中 ...

  10. 说说怎么写clean code

    前两天参加了公司组织的一个培训,主题是“如何写出好的代码” ,刚看到这个主题,第一反应是又不知道是哪个培训机构来忽悠钱的!老大安排了,就去听听呗. 说实在的,课程内容没有什么新鲜的东西,就是讲讲如何发 ...