我理解Collections.sort(list)
可以为字符串列表工作,但是对象列表呢?假设我有这个对象Contact
:
public class Contact implements Serializable {
private SerializableBitmap picture;
private String name;
private String location;
public Contact() {
}
public void setPicture(SerializableBitmap picture) {
this.picture = picture;
}
public void setName(String name) {
this.name = name;
}
public void setLocation(String location) {
this.location = location;
}
public SerializableBitmap getPicture() {
return picture;
}
public String getName() {
return name;
}
public String getLocation() {
return location;
}
}
然后我有一个这个对象的ArrayList。是否可以根据联系人姓名对列表进行排序?我试图用ListView填充它,但它应该按升序排列。
答案 0 :(得分:1)
您需要实现以下
之类的自定义比较器public class ContactComparator implements Comparator<Contact> {
public int compare(Contact contact1, Contact contact2) {
//In the following line you set the criterion,
//which is the name of Contact in my example scenario
return contact1.getName().compareTo(contact2.getName());
}
}
然后您只需要像这样调用它(在代码中您需要对联系人进行排序的任何地方):
Collections.sort(myContacts, new ContactComparator());
myContacts是您需要排序的联系人对象列表(您在问题中将其命名为列表)。
答案 1 :(得分:0)
如果要填充List,则应使用字符串[]填充它,然后按名称查找Contact以获取联系对象。然后你可以为listview排序字符串[]。
正如评论中所见,无论如何都需要创建一个新的对象字符串数组。它完全取决于你想要的方式。