java对map的key排序
⑴ 如何对Map进行字典排序java
//根据 Map的key进行字典排序
Map<String, String> parameterMap = new HashMap<String, String>();
List<Map.Entry<String,String>> list = new ArrayList<Map.Entry<String,String>>(parameterMap.entrySet());
Collections.sort(list,new Comparator<Map.Entry<String,String>>() {
//升序排序
public int compare(Entry<String, String> o1,
Entry<String, String> o2) {
return o1.getKey().compareTo(o2.getKey());
}
});
⑵ java里,想对hashmap里的key进行排序
chNNN -> NNN -> Integer.parseInt(NNN)
"ch10" -> "10" -> Integer.parseInt("10") -> 10
--------
Yes, you are right, but not too slow/difficult:
import java.util.*;
public class Tmp {
public static void main(String[] args) {
Map<String, Object> result = new HashMap<String, Object>();
result.put("ch1", "ch 1");
result.put("ch111", "ch 111");
result.put("ch11", "ch 11");
result.put("ch2", "ch 2");
result.put("ch13", "ch 13");
Object[] keys=result.keySet().toArray();
Comparator<Object> c = new Comparator<Object>(){
@Override
public int compare(Object o1, Object o2) {
//TODO: add argument check yourself
int a1 = Integer.parseInt(((String)o1).substring(2));
int a2 = Integer.parseInt(((String)o2).substring(2));
if(a1>a2)return 1;
if(a1==a2)return 0;
else return -1;
}
};
Arrays.sort(keys, c);
for(Object s:keys){
System.out.println(s +"=>"+result.get(s));
}
}
}
⑶ 在java里如何对一个map按key排序:Map<String, String[]>
你可以把map数据直接给treeMap就可以,它本身就是排序的。
⑷ Java中如何对Map的value或者key排序
Object
obj
=
new
Object();
obj
=
map.get("key");
map是Map的那个对象,“key”是表示key的那个值,一般是个字符串
⑸ java map 怎么按按key排序
java中map按照double大小进行排序,可以使用collentions接口的sort方法进行比较,实例如下:
Collections.sort(dataMap, new Comparator<Map<String, Object>>() { @Override public int compare(Map<String, Object> lhs, Map<String, Object> rhs) { Double d5 = ((Double) rhs.get(OpenPrice)); Double d6 = (Double) lhs.get(OpenPrice); if (d5 != null && d6 != null) { return d5.compareTo(d6); } else { return flag; } // return d1.compareTo(d2);}
根据返回的int类型,可设置按照从大到小还是从小到大排序
⑹ java TreeMap 中的key是怎么排序的呢 如果说key是 Double 类型的,自动排序的结果是从小到大的么
可以的,你可以看下TreeMap API帮助文档的介绍
例子如下
@Test
public void test() {
TreeMap<Double,String> treeMap = new TreeMap();
treeMap.put(0.1003, "zhangsan");
treeMap.put(1.1, "lisi");
treeMap.put(1.00031, "wangwu");
treeMap.put(0.1102, "xiaohong");
Set<Entry<Double, String>> entry = treeMap.entrySet();
for(Iterator<Entry<Double,String>> it = entry.iterator();it.hasNext();) {
Entry<Double, String> entry2 = it.next();
System.err.println("KEY:"+entry2.getKey()+" "+"VALUE:"+entry2.getValue());
}
}
------------------------------------
运行结果:
KEY:0.1003 VALUE:zhangsan
KEY:0.1102 VALUE:xiaohong
KEY:1.00031 VALUE:wangwu
KEY:1.1 VALUE:lisi
按照大小排序了
⑺ Java的map能不能排序
官方jdk里面提供的map接口实现类基本是不能用来排序的,sortmap或者treemap排序是可以的,但是比较复杂,效率也成问题,所以不常使用.
如果一定要能排序的map,可以自己写一个map的实现类.
现成的代码通过短信给你.
⑻ Java怎么实现HashMap或TreeMap以key值进行排序
HashMap本身是hash散列,做不到你说的排序。
TreeMap可以,是二叉树实现,自己实现一个Comparator。
⑼ java如何把Map<String,Object> map = new HashMap<String, Object>(); 按 Key 排序
首先Map排序需要自己写一堆算法。其次HashMap是无序的,即使已经排序正确了,取值时也不一定就是按顺序取出的。所以直接排序存放是不可行的。
但可以曲线救国的办法,通过Set<String> keys = map.keySet();取得map的key值集合,然后单独给keys来个排序就简单多了,然后按排序后的keys去遍历取值,就OK了。
⑽ Java中 map集合能排序吗
Java中的Map默认是对元素不排序的,但是Map的实现类TreeMap能够把它保存的记录根据key排序,默认是按升序排序。如果我们想要改变排序方式,则需要使用比较器:Comparator。