程序说明:花括号里的内容是<Hashtable<String, String>>对象的内容,每个Hashtable对象都包含两个key(name和age)List<Hashtable<String, String>> data= new ArrayList<Hashtable<String, String>>();
data对象按顺序包含了以下的Hashtable对象
{name=username002, age=14,}
{name=username001, age=16,}
{name=username004, age=20,}
{name=username010, age=11,}
我要实现的是按顺序name或者age排序后,再将排序后的Hashtable对象重新放到data或者别的list对象里
如:如果我按name排序后,data将重新包含以下内容的Hashtable对象:
{name=username001, age=16,}
{name=username002, age=14,}
{name=username004, age=20,}
{name=username010, age=11,}请问怎么实现啊,高手帮帮我啊
data对象按顺序包含了以下的Hashtable对象
{name=username002, age=14,}
{name=username001, age=16,}
{name=username004, age=20,}
{name=username010, age=11,}
我要实现的是按顺序name或者age排序后,再将排序后的Hashtable对象重新放到data或者别的list对象里
如:如果我按name排序后,data将重新包含以下内容的Hashtable对象:
{name=username001, age=16,}
{name=username002, age=14,}
{name=username004, age=20,}
{name=username010, age=11,}请问怎么实现啊,高手帮帮我啊
解决方案 »
- 请高手帮忙解决这个棘手的问题!!!
- 怎样从SQL2005读取数据到数组
- java项目打包后图片文件路径识别不到的问题
- 关于JAVA基础的几个问题
- 外国一家公司的一道超难推理面试题,如果你做对了,直接录取拿5K以上的工资不成问题!!!!!!
- 在线等待!我安装jdk1.5.0-05后,现在能编译、运行java应用程序,但不能运行applet
- 终于有颗星散分500
- 為什么imap.21cn.com能ping通﹐但在瀏覽器中缺不能訪問呢﹖謝謝﹗﹗
- how java script call activeX control ? see sample please
- 请问用java如何复制一个文件或者文件夹
- 源库数据经过java处理不能插入到同结构的目的库
- 求翻译
TreeMap(Comparator<? super K> c)
构造一个新的空映射,该映射根据给定的比较器进行排序。
List <Hashtable <String, String>> data= new ArrayList <Hashtable <String, String>>();
Hashtable<String, String> user1 = new Hashtable<String, String>();
user1.put("name", "username002");
user1.put("age", "14");
data.add(user1);
Hashtable<String, String> user2 = new Hashtable<String, String>();
user2.put("name", "username001");
user2.put("age", "16");
data.add(user2);
Hashtable<String, String> user3 = new Hashtable<String, String>();
user3.put("name", "username004");
user3.put("age", "20");
data.add(user3);
Hashtable<String, String> user4 = new Hashtable<String, String>();
user4.put("name", "username010");
user4.put("age", "11");
data.add(user4);
System.out.println("before sorting...");
System.out.println(data);
System.out.println("sort by name:");
Collections.sort(data, new Comparator < Hashtable <String, String > >() {
public int compare(Hashtable <String, String> arg0, Hashtable <String, String> arg1) {
return arg0.get("name").compareTo(arg1.get("name"));
}
});
System.out.println(data); System.out.println("sort by age:");
Collections.sort(data, new Comparator < Hashtable <String, String > >() {
public int compare(Hashtable <String, String> arg0, Hashtable <String, String> arg1) {
return Integer.valueOf(arg0.get("age")).compareTo(Integer.valueOf(arg1.get("age")));
}
});
System.out.println(data);
}
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;public class Test{ List<Hashtable<String,String>> data = new ArrayList<Hashtable<String,String>>(); private static void printlHt(Hashtable hashtable){
Set set = hashtable.keySet();
Iterator it = set.iterator();
while(it.hasNext()){
String key = it.next().toString();
System.out.println(key + " -> " + hashtable.get(key).toString());
}
} public static void main(String[] args){
Hashtable<String,String> table = new Hashtable<String,String>();
table.put("username002","14");
table.put("username001","16");
table.put("username004","20");
table.put("username010","11");
printlHt(table);
Map.Entry[] set = getSortedHashtable(table);
System.out.println("-------------------------------");
for(int i = 0;i < set.length;i++){
System.out.print(set[i].getKey().toString()+"-->");
System.out.println(set[i].getValue().toString());
}
} public static Map.Entry[] getSortedHashtable(Hashtable h){
Set set = h.entrySet();
Map.Entry[] entries = (Map.Entry[]) set.toArray(new Map.Entry[set.size()]); Arrays.sort(entries,new Comparator() {
public int compare(Object arg0,Object arg1){
int key1 = Integer.parseInt(((Map.Entry) arg0).getValue().toString());
int key2 = Integer.parseInt(((Map.Entry) arg1).getValue().toString());
return ((Comparable) new Integer(key1)).compareTo(new Integer(key2));
}
});
return entries;
}
}
对于2楼的:我现在是在做项目,你说的将数据封装到类,那是可以的,将每个hashtable放到data对象,最终会根据data对象来生成json数据
如果要对值排序 转化成Set来做 Set里装的是Map.Entry