我在clas News上实现了Comparable,以便我可以通过publishDate安排一个新闻阵列
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
public class News implements Comparable<News>{
private String title;
private String description;
private String link;
private String guid;
private String pubDate;
private Date date;
private String author;
private String image;
private String category;
private String feedIconLink;
@Override
public int compareTo(News anotherNews) {
long compareDateInMilisecconds = ((News) anotherNews).getDateInMilliseconds();
long result = compareDateInMilisecconds - this.getDateInMilliseconds();
int finalResult = (int) result;
return finalResult;
}
代码编译并运行并且它没有错误,但它实际上并没有改变数组上对象的顺序。
@Override
protected void onPostExecute(List<News> input) {
for (News aNews : input){
Log.v("Before", aNews.getFeedIconLink());
}
Arrays.sort(input.toArray());
for (News aNews : input){
Log.v("After", aNews.getFeedIconLink());
}
this.listener.finish(input);
}
我在排序之前和之后的Log.v并没有任何变化,即使在调试它运行整个Array的整个CompareTo方法。
我有什么问题吗?
答案 0 :(得分:1)
你是:
将List<News>
转换为News[]
对News[]
扔掉News[]
相反,请对List<News>
,using Collections.sort()
进行排序,而不是Arrays.sort()
。