public class Test { public static void main(String[] args){ Hashtable ht = new Hashtable(); ht.put("渠道1", "value1"); ht.put("渠道2", "value2"); ht.put("渠道3", "value3"); ht.put("渠道4", "value4"); ht.put("渠道5", "value5");
可以把Hashtable换成TreeMap,这样加入的元素就已经是排序的了。 public static void main(String [] args)throws Exception{ Map<String, Integer> m = new TreeMap<String, Integer>(); m.put("渠道1", 1); m.put("渠道5", 1); m.put("渠道3", 1); m.put("渠道2", 1); m.put("渠道4", 1); System.out.println(m.keySet()); }
怎么是对键值排序,应该是对它们对就的VALUE排序吧
JDK1.5之前版本。。import java.util.Arrays; import java.util.Hashtable; import java.util.Iterator; import java.util.Set;public class Test { public static void main(String[] args){ Hashtable ht = new Hashtable(); ht.put("渠道1", "value1"); ht.put("渠道2", "value2"); ht.put("渠道5", "value5"); ht.put("渠道6", "value6"); ht.put("渠道4", "value4"); ht.put("渠道3", "value3");
Set keySet = ht.keySet(); Object[] str = new Object[keySet.size()]; str = keySet.toArray(str); Arrays.sort(str); Iterator it = Arrays.asList(str).iterator(); while (it.hasNext()) { String key = (String)it.next(); System.out.println(key); // key // System.out.println((String)ht.get(key)); //value } } }
public class Test { public static void main(String[] args){ Hashtable ht = new Hashtable(); ht.put("渠道1", "value1"); ht.put("渠道2", "value2"); ht.put("渠道3", "value3"); ht.put("渠道4", "value4"); ht.put("渠道5", "value5");
public class Test {
public static void main(String[] args){
Hashtable ht = new Hashtable();
ht.put("渠道1", "value1");
ht.put("渠道2", "value2");
ht.put("渠道3", "value3");
ht.put("渠道4", "value4");
ht.put("渠道5", "value5");
Set<String> keySet = ht.keySet();
String[] str = new String[keySet.size()];
str = keySet.toArray(str);
Arrays.sort(str);
Iterator<String> it = Arrays.asList(str).iterator();
while (it.hasNext()) {
String key = it.next();
System.out.println(key); // key
// System.out.println(map.get(key)); //value
}
}
}不会是JDK1.5以下的吧。。用Hashtable不用HashMap吗。。
我一开始用的Hashmap后来换成Hashtable而且加了泛型的。。
public static void main(String [] args)throws Exception{
Map<String, Integer> m = new TreeMap<String, Integer>();
m.put("渠道1", 1);
m.put("渠道5", 1);
m.put("渠道3", 1);
m.put("渠道2", 1);
m.put("渠道4", 1); System.out.println(m.keySet());
}
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Set;public class Test {
public static void main(String[] args){
Hashtable ht = new Hashtable();
ht.put("渠道1", "value1");
ht.put("渠道2", "value2");
ht.put("渠道5", "value5");
ht.put("渠道6", "value6");
ht.put("渠道4", "value4");
ht.put("渠道3", "value3");
Set keySet = ht.keySet();
Object[] str = new Object[keySet.size()];
str = keySet.toArray(str);
Arrays.sort(str);
Iterator it = Arrays.asList(str).iterator();
while (it.hasNext()) {
String key = (String)it.next();
System.out.println(key); // key
// System.out.println((String)ht.get(key)); //value
}
}
}
public static void main(String[] args){
Hashtable ht = new Hashtable();
ht.put("渠道1", "value1");
ht.put("渠道2", "value2");
ht.put("渠道3", "value3");
ht.put("渠道4", "value4");
ht.put("渠道5", "value5");
Set<String> keySet = ht.keySet();
String[] str = new String[keySet.size()];
str = keySet.toArray(str);
Arrays.sort(str);
Iterator<String> it = Arrays.asList(str).iterator();
while (it.hasNext()) {
String key = it.next();
System.out.println(key); // key
// System.out.println(map.get(key)); //value
}
}
}
这个我用过,你试过这样吗1,2......10,11,12,他就会这么排序的1,10,11,12,2,3,4.....,你这怎么处理?
下面是我写的一个测试程序,ZL参考下。/**
* 测试HashTable的排序问题
*/
package net.csdn.blog.johnston;import java.util.Arrays;
import java.util.Hashtable;
import java.util.Set;/**
* @author Administrator
*
*/
public class TestHashTable { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Hashtable<String, String> ht = new Hashtable<String, String>(); //Hashtable是赋值的时候已经对键值进行降序排列了
ht.put("渠道5", "5");
ht.put("渠道3", "3");
ht.put("渠道4", "4");
ht.put("渠道2", "2");
ht.put("渠道1", "1");
System.out.println("排序前的ht:" + ht);
//获得键值
Set set = ht.keySet();
Object[] list = set.toArray();
//对键值排序
Arrays.sort(list);
//输出键值
for (Object key : list) {
System.out.println(key);
}
//把排序之后的键值对,重新赋给另一个Hashtable
Hashtable<String, String> sortHt = new Hashtable<String, String>();
for (int i=0; i<list.length; i++) {
String key = list[i].toString();
String value = ht.get(key);
System.out.println("key" + key + "value:" + value);
sortHt.put(key, value);
}
System.out.println("排序后的sortHt:" + sortHt);
}}
运行结果:
排序前的ht:{渠道5=5, 渠道4=4, 渠道3=3, 渠道2=2, 渠道1=1}
渠道1
渠道2
渠道3
渠道4
渠道5
key渠道1value:1
key渠道2value:2
key渠道3value:3
key渠道4value:4
key渠道5value:5
排序后的sortHt:{渠道5=5, 渠道4=4, 渠道3=3, 渠道2=2, 渠道1=1}
Hashtable ht = new Hashtable();
ht.put("渠道10", "value2");
ht.put("渠道11", "value2");
ht.put("渠道12", "value2");
ht.put("渠道1", "value1");
ht.put("渠道2", "value2");
ht.put("渠道5", "value5");
ht.put("渠道6", "value6");
ht.put("渠道4", "value4");
ht.put("渠道3", "value3");
Set keySet = ht.keySet();
Object[] str = new Object[keySet.size()];
str = keySet.toArray(str);
int[] temp = new int[keySet.size()];
for(int i = 0; i < str.length; i++) {
temp[i] = Integer.parseInt(str[i].toString().replaceAll("[^\\d]", ""));
}
Arrays.sort(temp);
for(int i = 0; i < temp.length; i++) {
System.out.println("渠道" + temp[i]);
}不是渠道+数字就不行。。