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。