我们使用可比接口对ArrayList进行排序,但我如何修改可比接口的CompareTo函数以根据浮点字段对数组列表进行排序,因为该函数返回int。
我试图按用户评级(浮动数据类型)对电影数据进行排序。下面是我创建的类,用于保存通过Json提要从网络调用获得的不同值。
/**
* Created by anant on 2015-08-19.
*/
public class MoviesDetail implements Parcelable, Comparable<MoviesDetail> {
private String jsf_original_title;
private String jsf_poster;
private String jsf_plot_synopsis;
private float jsf_user_rating;
private String jsf_release_date;
private String jsf_results;
private int jsf_id;
public MoviesDetail() {
}
private MoviesDetail(Parcel p) {
jsf_original_title = p.readString();
jsf_poster = p.readString();
jsf_plot_synopsis = p.readString();
jsf_user_rating = p.readFloat();
jsf_release_date = p.readString();
jsf_results = p.readString();
jsf_id = p.readInt();
}
public String getJsf_original_title() {
return jsf_original_title;
}
public String getJsf_poster() {
return jsf_poster;
}
public String getJsf_plot_synopsis() {
return jsf_plot_synopsis;
}
public float getJsf_user_rating() {
return jsf_user_rating;
}
public String getJsf_release_date() {
return jsf_release_date;
}
public String getJsf_results() {
return jsf_results;
}
public int getJsf_id() {
return jsf_id;
}
public void setJsf_original_title(String jsf_original_title) {
this.jsf_original_title = jsf_original_title;
}
public void setJsf_poster(String jsf_poster) {
this.jsf_poster = jsf_poster;
}
public void setJsf_plot_synopsis(String jsf_plot_synopsis) {
this.jsf_plot_synopsis = jsf_plot_synopsis;
}
public void setJsf_user_rating(float jsf_user_rating) {
this.jsf_user_rating = jsf_user_rating;
}
public void setJsf_release_date(String jsf_release_date) {
this.jsf_release_date = jsf_release_date;
}
public void setJsf_results(String jsf_results) {
this.jsf_results = jsf_results;
}
public void setJsf_id(int jsf_id) {
this.jsf_id = jsf_id;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(jsf_original_title);
dest.writeString(jsf_poster);
dest.writeString(jsf_plot_synopsis);
dest.writeFloat(jsf_user_rating);
dest.writeString(jsf_release_date);
dest.writeString(jsf_results);
dest.writeInt(jsf_id);
}
public final Parcelable.Creator<MoviesDetail> CREATOR = new Parcelable.Creator<MoviesDetail>() {
/**
* Create a new instance of the Parcelable class, instantiating it
* from the given Parcel whose data had previously been written by
* {@link Parcelable#writeToParcel Parcelable.writeToParcel()}.
*
* @param source The Parcel to read the object's data from.
* @return Returns a new instance of the Parcelable class.
*/
@Override
public MoviesDetail createFromParcel(Parcel source) {
return new MoviesDetail(source);
}
/**
* Create a new array of the Parcelable class.
*
* @param size Size of the array.
* @return Returns an array of the Parcelable class, with every entry
* initialized to null.
*/
@Override
public MoviesDetail[] newArray(int size) {
return new MoviesDetail[0];
}
};
@Override
public int compareTo(MoviesDetail aMovie) {
int i = (int) aMovie.getJsf_user_rating();
return getJsf_user_rating().compareTo(i);
}
}
谢谢Slaven!!我也在尝试做下面的事情,似乎它确实奏效了。如果对以下内容有任何其他评论,请告知我
public int compareTo(MoviesDetail aMovie) {
// int i = (int)another.getJsf_user_rating();
if(aMovie.getJsf_user_rating()<this.getJsf_user_rating()){
return -1;
}
else if(aMovie.getJsf_user_rating()==this.getJsf_user_rating()){
return 0;
}
return 1;
}
问题内容: 如何根据自定义属性排序ArrayList中的对象? 问题答案: 从实现,它就有一个像方法一样的方法。 因此,你的自定义设置应如下所示: 该方法必须返回一个,因此无论如何你都无法直接返回一个你计划中的。 你的排序代码几乎就像你写的那样: 如果你不需要重用比较器,则编写所有这些内容的一种更短的方法是将其编写为内联匿名类: 自从Java-8 现在,你可以通过使用lambda表达式来以较短的形
Employee是上面定义的类之一,Address是Employee字段之一的数据类型之一。列表需要根据员工的字段中的进行排序。 这可以通过编写自定义比较器来完成。我正在寻找一种使用JavaLambda进行排序并获得排序列表的方法?
我有一个假设 我的目的是以循环的方式基于来订购它。 输入: SortedList:
我有一个,在用户中有姓名、姓氏、年龄等。我希望实现一个排序算法,根据用户年龄对arraylist进行排序。我搜索了很多,但只找到排序数组。
我正在尝试根据是否已选中自定义复选框向签出添加费用。我真的很接近让这项工作,但我有问题获得后的价值观,以确定是否应申请或不收费。 以下是我自定义字段的代码: 这是可行的,而且字段显示得非常完美。 在我的主题中form-checkout.php的底部,我添加了以下javascript,以在检查字段时更新购物车总数: 这将更新订单总数并运行以下代码(这就是问题所在): 我知道这部分被调用是因为如果我去
我检查了许多示例,但我不知道如何实现比较器或其他方法来解决我的问题。我试图清楚地解释我的问题。我有一个arrayList如下:我的Datamodel包括一个int作为id和一个String作为每个对象的名称; 我的第二个Arraylist还包括一个包含更多项的数据模型,但它还包括First Arraylist的值,如下所示: 现在我想根据firstArrayList(值顺序)对第二个arrayLi