list里的对象排序:
List<Splashnote> splashnotes = getSplashnotes(user);
TagsDecComparator tagsDec = new TagsDecComparator();
Collections.sort(splashnotes,tagsDec);
public class TagsDecComparator implements Comparator {
public int compare(Object o1, Object o2) {
// TODO Auto-generated method stub
String tags = ((Splashnote) o1).getTags()==null?"":((Splashnote) o1).getTags();
String tags2 = ((Splashnote) o2).getTags()==null?"":((Splashnote) o2).getTags();
return ((Comparable) tags2).compareTo(tags);
}
}
hashTable 排序:
Hashtable ht = new Hashtable(); long oldUid = 0;
if(numberOfSites>0){
for(int count=0; count<numberOfSites; count++){
Splashnote sp = (Splashnote)siteList.get(count);
if (sp.getAuthorId() == null){
continue;
}
User user =userManager.getById(sp.getAuthorId());
if (ht.get(Long.toString(user.getId())) == null){
ArrayList arrList = new ArrayList();
arrList.add(user);
arrList.add(sp);
ht.put(Long.toString(user.getId()), arrList);
}else{
ArrayList arrList = (ArrayList)ht.get(Long.toString(user.getId()));
arrList.add(sp);
ht.put(Long.toString(user.getId()),arrList);
}
}
}
if(userList!=null && userList.size()>0)
numberOfUsers = userList.size();
else
numberOfUsers = 0;
for(int count=0; count<numberOfUsers; count++){
User user = (User)userList.get(count);
List splashnotes=null;
if (ht.get(Long.toString(user.getId())) == null){
//userList.add(userManager.getById(sp.getAuthorId()));
ArrayList arrList = new ArrayList();
arrList.add(user);
ht.put(Long.toString(user.getId()), arrList);
}
}
Map.Entry[] set = getSortedHashtable(ht);
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) {
ArrayList arrList1=(ArrayList) ((Map.Entry) arg0).getValue();
User user1 =(User) arrList1.get(0);
ArrayList arrList2=(ArrayList) ((Map.Entry) arg1).getValue();
User user2 =(User) arrList2.get(0);
String key1 = user1.getScreenName();
String key2 = user2.getScreenName();
return ((Comparable) key1).compareTo(key2); }
});
return entries;
}