java 新人求解 ,各位大牛们帮我说说原理啊
类名 NewsItem.java
public class NewsItem implements java.lang.Comparable{
..........
//时间降序 +点击量升序+标题降序
@Override
public int compareTo(NewsItem o) {
int result =0;
//比较 时间
result =-this.pubTime.compareTo(o.pubTime); //降序
if(0==result){ //时间相同
//点击量
result =this.hits-o.hits; //升序
if(0==result){ //点击量相同
//标题
result=-this.title.compareTo(o.title);//降序
}
}
return result;
}
}
3.类NewsItemApp
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
import com.bjsxt.sort.innerType.Utils;
/**
-
@author Administrator
*
*/
public class NewsItemApp {/**
- @param args */ public static void main(String[] args) { List news=new ArrayList(); news.add(new NewsItem("美国后怕了,逃跑了悲剧了",50,new Date(System.currentTimeMillis()-1000*60*60))); news.add(new NewsItem("中国登上钓鱼岛了,全国欢呼了",100,new Date())); news.add(new NewsItem("小日本终于听话了,泪流满面笑了",60,new Date(System.currentTimeMillis()-1000*60*60))); Utils.sort(news); System.out.println("排序后"+news);
}
}
大牛们给我解释下原理吧,,NewsItemApp类是怎么调用NewsItem的排序啊,我又没看到调用compareTo方法啊
Sort函数里面有调用的,你实现了Compareable接口,将list传入sort函数时排序里面会调用比较函数。不小心按了同问