HashMap 按key排序

1 Object[] key_arr = hashmap.keySet().toArray();
2 Arrays.sort(key_arr);
3 for  (Object key : key_arr) {
4     Object value = hashmap.get(key);
5 } 
  1 package Aug11.Collection;
  2
  3 import java.util.*;
  4
  5 public class EmployeeTest {
  6     static int  EmId=237;
  7     public static void main(String[] args) {
  8         Scanner reader=new Scanner(System.in);
  9         HashMap map = new HashMap();
 10         //TreeMap map = new TreeMap();  //sorted
 11         Employee1 emp;
 12         for (int i = 0; i <3; i++) {
 13             emp=new Employee1();
 14             System.out.println("Enter name:");
 15             String name=reader.next();
 16             System.out.println("Enter address:");
 17             String addr=reader.next();
 18             System.out.println("Enter dateJoined(YY/mm/):");
 19             String dateJoined=reader.next();
 20             System.out.println("Enter dateBirth:");
 21             String dateBirth=reader.next();
 22             System.out.println("Enter basicPay:");
 23             double basicPay=reader.nextDouble();
 24
 25             emp.setEmpName(name);
 26             emp.setAddr(addr);
 27             emp.setDateJoined(dateJoined);
 28             emp.setBasicPay(basicPay);;
 29             emp.setDateBirth(dateBirth);;
 30             map.put(genEmpID(dateJoined), emp);
 31
 32         }
 33
 34         System.out.println("   EmpId     EmpName   Address  DateJoined  DateBirth  BasicPay");
 35
 36         Object[] key_arr = map.keySet().toArray();
 37         Arrays.sort(key_arr);
 38         for  (Object key : key_arr) {
 39              Employee1 em = (Employee1) map.get(key);
 40             System.out.println(key+"\t"+em.getEmpName()+"\t"+em.getAddr()+"\t"+em.getDateJoined()+"\t"+em.getDateBirth()+"\t"+em.getBasicPay());
 41
 42         }
 43
 44          /*Set<Integer> set = map.keySet();
 45           Iterator<Integer> iter = set.iterator();
 46          while(iter.hasNext()){
 47               int key = iter.next();
 48               Employee1 em=(Employee1) map.get(key);
 49               System.out.println(key+"\t"+em.getEmpName()+"\t"+em.getAddr()+"\t"+em.getDateJoined()+"\t"+em.getDateBirth()+"\t"+em.getBasicPay());
 50          }*/
 51
 52          }
 53
 54
 55
 56
 57
 58
 59 public static int genEmpID(String dateJoined){
 60     String EmpID=dateJoined+(EmId+1);
 61     EmId++;
 62     String [] s=EmpID.split("/");
 63     StringBuffer bs=new StringBuffer();
 64     for(int i=0;i<s.length;i++){
 65         bs.append(s[i]);
 66     }
 67     int ID=Integer.parseInt(bs.toString());
 68     return ID;
 69
 70     }
 71
 72 }
 73
 74
 75
 76
 77
 78 class Employee1 {
 79     private String empName;
 80     private String addr;
 81     private String dateJoined;
 82     private String dateBirth;
 83     private double basicPay;
 84
 85     public String getEmpName() {
 86         return empName;
 87     }
 88     public void setEmpName(String empName) {
 89         this.empName = empName;
 90     }
 91     public String getAddr() {
 92         return addr;
 93     }
 94     public void setAddr(String addr) {
 95         this.addr = addr;
 96     }
 97     public String getDateJoined() {
 98         return dateJoined;
 99     }
100     public void setDateJoined(String dateJoined) {
101         this.dateJoined = dateJoined;
102     }
103     public String getDateBirth() {
104         return dateBirth;
105     }
106     public void setDateBirth(String dateBirth) {
107         this.dateBirth = dateBirth;
108     }
109     public double getBasicPay() {
110         return basicPay;
111     }
112     public void setBasicPay(double basicPay) {
113         this.basicPay = basicPay;
114     }
115
116
117
118
119 }

HashMap 按key排序,布布扣,bubuko.com

时间: 2024-12-22 20:04:31

HashMap 按key排序的相关文章

Java HashMap按key排序和按value排序的两种简便方法

HashMap的储存是没有顺序的,而是按照key的HashCode实现.key=手机品牌,value=价格,这里以这个例子实现按名称排序和按价格排序. Map phone=new HashMap(); phone.put("Apple",8899); phone.put("SAMSUNG",7000); phone.put("Meizu",2698); phone.put("Xiaomi",1800); System.out.

Map排序(按key排序,按value排序)

主要分两种,按键排序.按值排序. 而且,按key排序主要用于TreeMap,而按value排序则对于Map的子类们都适用. 一.按键排序 按Key排序主要用于TreeMap,可以实现按照Key值的大小,在对象插入时直接插入到合适的位置,保持Map的顺序性. 来看TreeMap的构造函数:TreeMap(Comparator<? super K> comparator):构造一个新的.空的树映射,该映射根据给定比较器进行排序. 这里的比较器是key的比较器.所以定义比较器时用于比较的两个参数是K

Java Map 按Key排序和按Value排序

package test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Tr

C++ STL中Map的按Key排序和按Value排序

原文  http://blog.csdn.net/iicy266/article/details/11906189 map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value.假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择. 我们这样定义,map<string, int>,其中学生姓名用string类型,作为Key:该学生的成绩用int类型,作为value.这样一来,我们可以根据学

C++基础之map按key排序

在项目当中有要用到map按key排序的需求,就在百度上搜了一下: typedef pair<int,int> PAIR; int cmp(const PAIR& x, const PAIR& y) { return x.second < y.second; } map<int,int> imgdis; //待排序对象,根据double值排序 imgdis[1] = 3; imgdis[10] = 1; imgdis[3] = 5; imgdis[12] = 4

hadoop编程小技巧(4)---全局key排序类TotalOrderPartitioner

Hadoop代码测试版本:Hadoop2.4 原理:在进行MR程序之前对输入数据进行随机提取样本,把样本排序,然后在MR的中间过程Partition的时候使用这个样本排序的值进行分组数据,这样就可以达到全局排序的目的了. 难点:如果使用Hadoop提供的方法来实现全局排序,那么要求Mapper的输入.输出的key不变才可以,因为在源码InputSampler中提供的随机抽取的数据是输入数据最原始的key,如下代码(line:225): for (int i = 0; i < splitsToSa

map 按key排序 按value排序

http://blog.csdn.net/iicy266/article/details/11906189 这篇文章很好,提醒我们熟悉函数原型的重要性 map 按key排序 按value排序,码迷,mamicode.com

Java 将自定义的对象作为HashMap的key

需要继承Map的equals函数和hashCode函数 package com.category; import java.util.HashMap; public class GenCategoryLevelData { private static HashMap<Category, Integer> categoryLevel = new HashMap<Category, Integer>(); /** * @param args */ public static void

对HashMap的value排序

HashMap<String,Long> sMap = new HashMap<String,Long>(); sMap.put("张三", 90L); sMap.put("李四", 79L); sMap.put("王五", 88L); sMap.put("赵六", 76L); ArrayList<Entry<String,Long>> list = new ArrayList&