gpt4 book ai didi

java - 如何对 Arraylist 进行排序以使特定项目位于顶部

转载 作者:行者123 更新时间:2023-12-02 09:09:35 24 4
gpt4 key购买 nike

我有一个包含联系人列表的回收 View 。

Check the Image

我想要的是在图像中红色标记的联系人应该出现在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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com