msww.net
当前位置:首页 >> jAvA里,想对hAshmAp里的kEy进行排序 >>

jAvA里,想对hAshmAp里的kEy进行排序

final entry removeentryforkey(object key) { int hash = (key == null) ? 0 : hash(key.hashcode()); int i = indexfor(hash, table.length); entry prev = table[i]; entry e = prev; while (e != null) { entry next = e.next; object k; if (e.hash == hash && ((k = e.key) == key

HashMap本身是hash散列,做不到你说的排序.TreeMap可以,是二叉树实现,自己实现一个Comparator.

读取Map的信息到ArrayList,然后使用sort排序(需要自己写排序规则)

import java.util.ArrayList;import java.util.Collections;import java.util.Comparator;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;public class Run { public static void main(String[] args) { // 初始化map Map map

TreeMap的话自身就是有序的,只要实现了Comparable接口向map中添加元素,TreeMap会自动排序.具体顺序根据你的Comparable接口的实现而定.HashMap是无序的也没办法进行排序.

keySet是键的集合,Set里面的类型即key的类型entrySet是 键-值 对的集合,Set里面的类型是Map.EntrykeySet()的速度比entrySet()慢了很多使用entrySet则必须将map对象转换为Map.Entry,keySet则不需要

首先Map排序需要自己写一堆算法.其次HashMap是无序的,即使已经排序正确了,取值时也不一定就是按顺序取出的.所以直接排序存放是不可行的.但可以曲线救国的办法,通过Set keys = map.keySet();取得map的key值集合,然后单独给keys来个排序就简单多了,然后按排序后的keys去遍历取值,就OK了.

使用map.entrySet()不需要导入jar entrySet方法是Map自带的方法有不懂的可以追问

Map m3 = new LinkedHashMap(m1);你想要的话是这样???

别用hashmap,用treemap key存放分数,value存放姓名

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.msww.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com