可能的重复:
如何按属性对对象的数组列表进行排序? https://stackoverflow.com/questions/2535124/how-to-sort-an-arraylist-of-objects-by-a-property
Java的排序算法是什么 https://stackoverflow.com/questions/12228659/what-is-the-sorting-algorithm-for-java
我有一个java类来记录diffSeconds
.
class fileObj
{
public String fileName;
public Date modificationTime;
public long diffSeconds;
fileObj()
{
modificationTime = null;
}
}
我有一个 for 循环,可以生成多个实例fileObj
类并将它们添加到列表中。
List<fileObj> fileView = new ArrayList<fileObj>();
for(int j=0; j<10; j++)
{
fileView.add(new fileObj());
}
假设每个班级有一个diffSeconds
分配给它们的值,我如何根据值对列表进行排序(最大的在前)
您可以使用Collections.sort(fileView)
;并实施Comparable
接口并编写实现方法compareTo(fileObj arg0)
决定对您的列表进行排序。
为了实施,
class fileObj implements Comparable<fileObj>
@Override
public int compareTo(fileObj arg0) {
if(this.diffSeconds > arg0.diffSeconds )
return 0;
else return 1;
}
参考: http://www.mkyong.com/java/java-object-sorting-example-comparable-and-comparator/
详细编码。
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
public class SortExample {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<fileObj> fileView = new ArrayList<fileObj>();
for(int j=0; j<10; j++)
{
fileView.add(new fileObj(j));
}
Collections.sort(fileView);
for(fileObj obj: fileView){
System.out.println("File " + obj.getDiffSeconds());
}
}
}
class fileObj implements Comparable<fileObj>
{
public String fileName;
public Date modificationTime;
public long diffSeconds;
fileObj()
{
modificationTime = null;
}
fileObj(long diffSeconds)
{
modificationTime = null;
this.diffSeconds = diffSeconds;
}
@Override
public int compareTo(fileObj arg0) {
if(this.diffSeconds > arg0.diffSeconds )
return 0;
else return 1;
}
public long getDiffSeconds() {
return diffSeconds;
}
public void setDiffSeconds(long diffSeconds) {
this.diffSeconds = diffSeconds;
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)