我根据默认浏览器和Google Chrome浏览器中的日期,名称和网址创建了记录。我将基于两个浏览器的历史信息组合在一起,并使用Hashmap显示它。所以现在我想做的是我想按日期和名字进行排序。但是,由于我的知识,我在实施它时遇到了困难。任何建议和意见将不胜感激。提前谢谢。
//default browser
if (mCur.moveToFirst() && mCur.getCount() > 0) {
int titleIdx = mCur.getColumnIndex(Browser.BookmarkColumns.TITLE);
int urlIdx = mCur.getColumnIndex(Browser.BookmarkColumns.URL);
int dateIdx = mCur.getColumnIndex(Browser.BookmarkColumns.DATE);
while (mCur.isAfterLast() == false) {
HashMap temp = new HashMap();
temp.put(FIRST_COLUMN,getDate(mCur.getLong(dateIdx), "dd/MM/yyyy HH:mm:ss "));
temp.put(SECOND_COLUMN, mCur.getString(titleIdx));
temp.put(THIRD_COLUMN, mCur.getString(urlIdx));
list.add(temp);
mCur.moveToNext();
}
}
//google chrome
if (mCur2.moveToFirst() && mCur2.getCount() > 0) {
int dateIdx2 = mCur2.getColumnIndex(Browser.BookmarkColumns.DATE);
int titleIdx2 = mCur2.getColumnIndex(Browser.BookmarkColumns.TITLE);
int urlIdx2 = mCur2.getColumnIndex(Browser.BookmarkColumns.URL);
while (mCur2.isAfterLast() == false) {
HashMap temp = new HashMap();
temp.put(FIRST_COLUMN, getDate(mCur2.getLong(dateIdx2), "dd/MM/yyyy HH:mm:ss "));
temp.put(SECOND_COLUMN, mCur2.getString(titleIdx2));
temp.put(THIRD_COLUMN, mCur2.getString(urlIdx2));
list.add(temp);
mCur2.moveToNext();
}
}
答案 0 :(得分:1)
使用如下排序比较器为您的数据创建一个Model类:
public class MyItem {
String title;
String url;
String date;
public MyItem(String title, String url, String date) {
this.title = title;
this.url = url;
this.date = date;
}
public static Comparator<MyItem> sortByDate = new Comparator<MyItem>() {
@Override
public int compare(MyItem item1, MyItem item2) {
return item1.date.compareTo(item2.date);
}
};
public static Comparator<MyItem> sortByTitle = new Comparator<MyItem>() {
@Override
public int compare(MyItem item1, MyItem item2) {
return item1.title.compareTo(item2.title);
}
};
}
然后在您的代码中使用它 创建一个Myitems列表/数组 然后调用函数sort =&gt; Arrays.sort(yourMyItemsObject,MyItem.sortByTitle);
根据您的排序需要更改compare()方法的代码。
答案 1 :(得分:0)
使用Inner class概念对哈希映射进行排序,不要使用两个哈希映射,
首先对类级别的哈希映射进行排序,然后对哈希值进行排序,在此相同的哈希映射中,您将获得两个排序值
答案 2 :(得分:0)
查看Sortable HashMap-like data structure in Java?是否使用可排序的HashMap数据结构。
您需要将所有数据合并到一个Map对象中,然后在您想要向用户显示结果之前对其进行排序。
祝你好运