java中的hashmap排序

最近在研究HashMap的原理,突然想起了怎么样对HashMap进行排序,以下是实现的具体代码:
第一种:

package com.test.zyy.review;

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;

public class IteratorOfHashMapSequence implements Comparator<String>{

	public static void main(String[] args) {
		//声明一个map集合
		Map<String,String> testmap = new HashMap<String, String>();
		//将map集合中存值
		testmap.put("p1", "value1");
		testmap.put("p4", "value2");
		testmap.put("p2", "value5");
		testmap.put("p3", "value0");
		//用map中的keySet方法将key放入set集合当中
		Set<String> keySet = testmap.keySet();
		//定义一个list将keyset放入list中,因为Collections中排序的方法是sort,支持的类型是list,所以这里要用到list
		List<String> testlist = new ArrayList<String>(keySet);
		//使用Collections的方法sort进行排序
		Collections.sort(testlist, new IteratorOfHashMapSequence());
		//获取list集合的迭代器,String为迭代元素的类型
		Iterator<String> iterator = testlist.iterator();
		while(iterator.hasNext()){
			//获取到ley
			String key = iterator.next();
			//获取value
			String values = testmap.get(key);
			System.out.println("key是:"+key+"  "+"value是:"+values);
		}
	}
	
	public int compare(String o1, String o2) {
		return o2.compareTo(o1);
	}
	
}

第二种:

package com.test.zyy.review;

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 IteratorOfHashMapSequeuce1 implements Comparator<Entry<String,String>>{

	public static void main(String[] args) {
		//声明一个map集合
		Map<String,String> testmap = new HashMap<String, String>();
		//将map集合中存值
		testmap.put("p1", "value1");
		testmap.put("p4", "value2");
		testmap.put("p2", "value5");
		testmap.put("p3", "value0");
		//获取map中的映射集合,这里entryset存的是键与值的映射
		Set<Entry<String,String>> entrySet = testmap.entrySet();
		//将set集合中的所有元素放入list集合当中,为后续的排序做铺垫
		List<Entry<String,String>> testlist = new ArrayList<Entry<String,String>>(entrySet);
		//使用sort方法进行排序
		Collections.sort(testlist, new IteratorOfHashMapSequeuce1());
		//获取list集合的迭代器,String为迭代元素的类型
		Iterator<Entry<String, String>> iterator = testlist.iterator();
		while(iterator.hasNext()){
			Entry<String, String> next = iterator.next();
			String key = next.getKey();
			String value = next.getValue();
			System.out.println("key是:"+key+"  "+"value是:"+value);
		}
	}
	
	public int compare(Entry<String, String> o1, Entry<String, String> o2) {
		return o2.getKey().compareTo(o1.getKey());
	}
	
}

希望这篇分享能够帮助到大家,有什么不对的,可以纠正一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值