package home.collection.arr;

import java.awt.Window.Type;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry; public class HomeworkMap2 {
public static void main(String[] args) {
// 创建Map
Map<Integer,Student> map = new HashMap<Integer,Student>();
createStudets(20, map);
// System.out.println(map); List<Integer> scoreList = new ArrayList<Integer>();
getAllScore(scoreList, map,1,null); // 排序
sortByScore(scoreList); // 取前三位
int[] maxScores = new int[3];
for (int i = 0; i < maxScores.length; i++) {
if (scoreList.get(i)>0) {
maxScores[i]=scoreList.get(i);
// System.out.println(maxScores[i]);
}
} getAllScore(scoreList, map, 2, maxScores); } /**
* @param count 创建学生的个数
* @param map 存放学生的Map
*/
public static void createStudets(int count,Map<Integer,Student> map){
// 创建一部分students
for (int i = 0; i < count; i++) {
Student stu = new Student("lf"+i, 75+i);
// student被添加到map中
map.put(stu.getNumber(), stu);
}
}
/**
*
* @param scoreList
* @param map
* @param method
* @param maxScores
*/
public static void getAllScore(List<Integer> scoreList,Map<Integer,Student> map,int method,int[] maxScores) {
// 从Map取出score放进newList
// 遍历
// 取出Map中的键值对
Set<Entry<Integer, Student>> entry = map.entrySet();
// System.out.println(entry);
// 遍历set(就是遍历Map)
Iterator<Entry<Integer, Student>> it = entry.iterator();
while (it.hasNext()) {
// Entry key-value
Entry<Integer, Student> e = it.next();
Student s = e.getValue();
if (method == 1) {
scoreList.add(s.getScore());
}else if (method == 2) {
// 判断
for (int i = 0; i < maxScores.length; i++) {
if (s.getScore() == maxScores[i]) {
System.out.println("第"+(i+1)+"名:"+s.getName()+" 分数:"+s.getScore());
}
}
} }
// System.out.println(scoreList);
}
/**
* 排序
*/
public static void sortByScore(List<Integer> scoreList){
Collections.sort(scoreList, new Comparator<Integer>() {
public int compare(Integer num1,Integer num2) {
return num2-num1;
}
});
}
}

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. 强、软、弱、虚引用,ReferenceQueue,WeakHashMap

    强引用(Reference):所谓强引用就是普通引用.普通引用引用的对象,即使内存不足时,一般情况下也不会被回收. 软引用(weakReference):如果对象被且仅被软引用所引用时,内存不足时,会 ...

  2. AMD PerfStudio

    用PerfStudio 抓DX11 OIT

  3. JavaScript 页面跳转的几种方式 转

    第一种:      <script language="JavaScript" type="text/javascript">         wi ...

  4. css修改,类似elememt.style样式修改

    使用!important 语法优先权. .yui-b { margin-left:0px ! important; }

  5. 《Java程序设计》第2周学习总结

    20145317彭垚<Java程序设计>第2周学习总结 教材学习内容总结 类型 基本类型 整数(short.int.long) 字节(byte) 浮点数(float/double) 字符( ...

  6. mysql 锁

    Lock table有两种模式 lock tables table_name  read  [or write]; test1: session 1: lock tables tmp_xf_lock; ...

  7. ubuntu timezone

    change  timezone sudo dpkg-reconfigure tzdata synchronize time sudo ntpdate time.windows.com

  8. instruction-set architecture Processor Architecture

    Computer Systems A Programmer's Perspective Second Edition We have seen that a processor must execut ...

  9. (转)js闭包初入门

    先看一段JS代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 function a(){             var num = 0;             function  ...

  10. 在使用EFCodeFirst中出现类型“System.Data.Objects.ObjectContext”在未被引用的程序集中定义的解决方案

    我安装了EF4.1版本,并在一个项目中映射一个数据库并生成了EF的MODEL实体层 测试:在Default.aspx页面上加了个GridView控件,后台进行绑定 using System; usin ...