Map的基本用法(Java)
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)的更多相关文章
- HDU1004 Let the Balloon Rise(map的简单用法)
Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- STL——map/unordered_map基础用法
map /multimap map是STL里重要容器之一. 它的特性总结来讲就是:所有元素都会根据元素的键值key自动排序(也可根据自定义的仿函数进行自定义排序),其中的每个元素都是<key, ...
- JOptionPane用法--java
JOptionPane用法--java JOptionPane的简单应用: 1.首先引入包: import javax.swing.JOptionPane; 2.添加如下代码: Object[] op ...
- map的详细用法
map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时 ...
- ES6中map和set用法
ES6中map和set用法 --转载自廖雪峰的官方网站 一.map Map是一组键值对的结构,具有极快的查找速度. 举个例子,假设要根据同学的名字查找对应的成绩,如果用Array实现,需要两个Arra ...
- An internal error occurred during: "Map/Reducelocation status updater".java.lang.NullPointerException
当我们运行wordcount代码时,出现报错,如下所示: An internal error occurred during: "Map/Reducelocation status upda ...
- map的详细用法 (转
map的详细用法: map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能 力,由于这个特性,它完成有可能在我 ...
- map的常见用法
map的常见用法 map 是什么? map是一组键值对的组合,通俗理解类似一种特殊的数组,a[key]=val,只不过数组元素的下标是任意一种类型,而且数组的元素的值也是任意一种类型.有点类似pyth ...
- Java map 详解 - 用法、遍历、排序、常用API等
尊重原创: http://www.cnblogs.com/lzq198754/p/5780165.html 概要: java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 L ...
随机推荐
- metasploit 常用命令汇总
1.连接数据并显示一些信息 db_connet username:password@ip address/database name db_destroy 同上 db_import 文件名字 db_h ...
- [kuangbin带你飞]专题六 最小生成树
学习最小生成树已经有一段时间了 做一些比较简单的题还算得心应手..花了三天的时间做完了kuangbin的专题 写一个题解出来记录一下(虽然几乎都是模板题) 做完的感想:有很多地方都要注意 n == 1 ...
- [IT学习]sql 入门及实例
sql 是一种数据库查询语言,可以让你很快的查询到数据.其实一般情况下,你也可以采用excel来查询数据库数据. 但是人们通常认为sql会更加灵活和方便一些. sql学习的入门网站: http://w ...
- 【ZZ】 移位贴图 Displacement Mapping
http://blog.csdn.net/huazai434/article/details/5650629 说明:该技术需要VS3.0的支持!!! 一,移位贴图类似于地形渲染.不过由于移位纹理可以做 ...
- C与C++连续赋值的区别
int a,b,c,d; a = b = ; // ( a!=b?a:b) = 1000;//如果a不等于b 那么a = 100;这句话执行完 a还是等于5,b= 100: printf(" ...
- SQL控制语句中内置函数讲解
一.伪表.系统内置的只有一行一列数据的表.常用来执行函数. select 函数名 from dual 注:以下所有函数为了方便理解均用 伪表 做为事例! 二. 时间函数 1.sysdate:获取数据库 ...
- stage划分
整个stage的划分会根据最后触发的action进行倒推,如果碰到宽依赖就将当前范围内的rdd划分为一个stage,直到所有的RDD遍历完为止.
- nsenter into docker. selinux(semanage,restorecon)
Docker容器运行后,如何进入容器进行操作呢?起初我是用SSH.如果只启动一个容器,用SSH还能应付,只需要将容器的22端口映射到本机的一个端口即可.当我启动了五个容器后,每个容器默认是没有配置SS ...
- Android源码剖析之Framework层实战版(Ams管理Activity启动)
本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 讲到实战,就不得不拿两个例子来说明,本篇想拿的是应用最广泛的两个:Ams和Wms,一个管理activ ...
- php--validate表单验证
validate表单验证扩展规则 添加自定义检验(验证class) 获取html加入 class <input id="D_NUMBER" name="D_NUMB ...