我有一个String列表
ArrayList<String> list = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
每个项目:
list.add(week+" "+year);
Run Code Online (Sandbox Code Playgroud)
在哪里week和year是整数.
如何将此列表按升序排序?
小智 10
我建议创建一个包含所需数据并实现可比性的数据结构.
class WeekOfYear implements Comparable<WeekOfYear> {
private int week ;
private int year ;
public WeekOfYear(int week, int year) {
this.week = week ;
this.year = year ;
}
/**
* ...
*/
public int compareTo(WeekOfYear other) {
int delta = this.year - other.year ;
return (int)Math.signum(
delta != 0 ? delta : (this.week - other.week));
}
@Override
public String toString() {
StringBuilder builder = new StringBuilder() ;
builder.append(week > 9 ? "" : "0") ;
builder.append(week).append(" ") ;
builder.append(year) ;
return builder.toString();
}
}
Run Code Online (Sandbox Code Playgroud)
List<WeekOfYear> weeks ;
weeks = new ArrayList<WeekOfYear>();
Collections.sort(weeks) ;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
551 次 |
| 最近记录: |