第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何對 RecyclerView 中的項目進行排序?

如何對 RecyclerView 中的項目進行排序?

函數(shù)式編程 2022-10-07 17:52:10
我想對 recyclerView 中的項目進行排序。我有諸如 20ABC1、20ABC2、...、20ABC10、..等的用戶名。我已經(jīng)嘗試了相關(guān)問題的答案,其中之一是:public static final Comparator<Users> BY_NAME_ALPHABETICAL = (users, t1) -> users.Username.compareTo(t1.Username);但這并不能完全解決問題。20ABC10, 20ABC11,...20ABC19 高于 20ABC2。我認為這是因為它逐個字符地檢查。有什么辦法可以解決這個問題?謝謝 :)
查看完整描述

4 回答

?
炎炎設(shè)計

TA貢獻1808條經(jīng)驗 獲得超4個贊

我的問題通過使用這個答案解決了我的問題Sorting Strings that contains number in Java by Bohemian 他從字符串中刪除了字母并比較了剩余的ints

Collections.sort(strings, new Comparator<String>() {

    public int compare(String o1, String o2) {

        return extractInt(o1) - extractInt(o2);

    }


    int extractInt(String s) {

        String num = s.replaceAll("\\D", "");

        // return 0 if no digits found

        return num.isEmpty() ? 0 : Integer.parseInt(num);

    }

});




查看完整回答
反對 回復(fù) 2022-10-07
?
撒科打諢

TA貢獻1934條經(jīng)驗 獲得超2個贊

public Observable<User> getUsersWithBlogs() {

return Observable.fromIterable(UserCache.getAllUsers())

.filter(user -> user.blog != null && !user.blog.isEmpty())

.sorted((user1, user2) -> user1.name.compareTo(user2.name));

}


查看完整回答
反對 回復(fù) 2022-10-07
?
蕪湖不蕪

TA貢獻1796條經(jīng)驗 獲得超7個贊

使用科特林,


val comp: Comparator<Users> = Comparator { o1, o2 -> o1.Username.trim().compareTo(o2.Username.trim()) }

Collections.sort(users, comp)

對 java 做同樣的事情。


查看完整回答
反對 回復(fù) 2022-10-07
?
ABOUTYOU

TA貢獻1812條經(jīng)驗 獲得超5個贊

把它放在你的適配器里


void sortByName(boolean isDescending) {

    if (mDataList.size() > 0) {

        Collections.sort(mDataList, new Comparator<Users>() {

            @Override

            public int compare(Users object1, Users object2) {

                if (isDescending)

                    return object2.getUsername().toLowerCase().compareTo(object1.getUsername().toLowerCase().trim());

                else

                    return object1.getUsername().toLowerCase().compareTo(object2.getUsername().toLowerCase().trim());

            }

        });

        notifyDataSetChanged();

    }

}

然后像這樣使用它:


adapter.sortByName( true||false );


查看完整回答
反對 回復(fù) 2022-10-07
  • 4 回答
  • 0 關(guān)注
  • 177 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號