gpt4 book ai didi

java - 如何在实现 Parcelable 时对 ArrayList 进行排序

转载 作者:行者123 更新时间:2023-12-01 07:51:44 27 4
gpt4 key购买 nike

我尝试使用Collections.sort方法对类别数组列表进行排序,但没有成功。

这是我的代码:

public class Categories implements Parcelable {
private ArrayList<Category> category;
private Recent recent;

public ArrayList<Category> getCategories() {
return this.category;
}

public void setCategory(ArrayList<Category> category) {
this.category = category;
}

public Recent getRecent() {
return this.recent;
}

public void setRecent(Recent recent) {
this.recent = recent;
}


protected Categories(Parcel in) {
if (in.readByte() == 0x01) {
category = new ArrayList<Category>();
in.readList(category, Category.class.getClassLoader());
} else {
category = null;
}
recent = (Recent) in.readValue(Recent.class.getClassLoader());
}

@Override
public int describeContents() {
return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
if (category == null) {
dest.writeByte((byte) (0x00));
} else {
dest.writeByte((byte) (0x01));
dest.writeList(category);
}
dest.writeValue(recent);
}

public static final Parcelable.Creator<Categories> CREATOR = new Parcelable.Creator<Categories>() {
@Override
public Categories createFromParcel(Parcel in) {
return new Categories(in);
}

@Override
public Categories[] newArray(int size) {
return new Categories[size];
}
};
}

最佳答案

您还可以使用自定义比较器:

public class CategoriesComparator implements Comparator<Category> {
@Override
public int compare(Category category1, Category category2) {
return category1.getSomeProperty().compareTo(category2.getSomeProperty());
}
}

当你想比较时,请调用:

Collections.sort(yourListCategories, new CategoriesComparator());

希望对你有帮助!

关于java - 如何在实现 Parcelable 时对 ArrayList 进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36215823/

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