我有一个包含联系人列表的回收 View 。
我想要的是在图像中红色标记的联系人应该出现在recyclerview的顶部
我尝试了这段代码,但它不适合我。
Collections.sort(userList, new Comparator<Contact>() {
@Override
public int compare(Contact contact, Contact contact2) {
return Boolean.compare(contact2.isRegistered(),contact.isRegistered());
}
});
AllContactsAdapter contactAdapter = new AllContactsAdapter(userList,getContext());
ContactRecyclerView.setLayoutManager(new LinearLayoutManager(getContext()));
ContactRecyclerView.setAdapter(contactAdapter);
希望我能得到答案并提前致谢:)
最佳答案
只需在比较方法中交换 Contact 对象即可
public void sort() {
List<Contact> userList = new ArrayList<>();
userList.add(new Contact("ABC", true));
userList.add(new Contact("BCD", false));
userList.add(new Contact("CDE", true));
userList.add(new Contact("DEF", true));
userList.add(new Contact("EFG", false));
userList.add(new Contact("FGH", true));
userList.add(new Contact("GHI", true));
Collections.sort(userList, (contact, contact2) ->
Boolean.compare(contact.isRegistered(), contact2.isRegistered())); <----Here
for (Contact contact : userList) {
System.out.println(contact);
}
}
Contact{name='BCD', isRegistered=false}
Contact{name='EFG', isRegistered=false}
Contact{name='ABC', isRegistered=true}
Contact{name='CDE', isRegistered=true}
Contact{name='DEF', isRegistered=true}
Contact{name='FGH', isRegistered=true}
Contact{name='GHI', isRegistered=true}
关于java - 如何对 Arraylist 进行排序以使特定项目位于顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59530225/