根据情况,我每次都会尝试进行不同的比较。例如:我有一个名为Line的类,在这个类中有string name,int id和int扩展名,我希望能够通过它们的名称或id或扩展名来比较两个不同的Line对象。
发布于 2015-05-18 07:47:25
如果你有两个不同的比较模式,你可能需要两个不同的Comparator(或者一个可以配置的,例如,关于如何比较的构造函数参数)
public class LineNameComparator implements Comparator<Line> {
@Override
public int compare (Line a, Line b) {
return a.getName().compareTo(b.getName());
}
}
public class LineIdComparator implements Comparator<Line> {
@Override
public int compare (Line a, Line b) {
return a.getIf().compareTo(b.getId());
}
}
public class LineExtensionComparator implements Comparator<Line> {
@Override
public int compare (Line a, Line b) {
return a.getExtension().compareTo(b.getExtension());
}
}..。然后根据您的需要使用它:
List<Line> list = ...
// Sort by name:
Collections.sort(list, new LineNameComparator());
// Sort by ID:
Collections.sort(list, new LineIdComparator());
// Sort by extension:
Collections.sort(list, new LineExtensionComparator());https://stackoverflow.com/questions/30293258
复制相似问题