我的问题是这个; 我必须订购一张数据表.表的每一行都是存储在List中的对象(让我们称之为TableObject).每列数据都是类的属性(通常是String).
当用户点击任何列时,我必须进行典型的数据排序.所以我考虑将List更改为TreeSet并在TableObject中实现Comparator.
当我尝试重新排序TreeSet时出现问题.这个比较起初相当容易(为了省略parseInt中的异常):
public int compare(TableObject to1, TableObject to2){
TableObject t1 = to1;
TableObject t2 = to2;
int result = 1;
if(Integer.parseInt(t1.getId()) == Integer.parseInt(t2.getId())){result=0;}
if(Integer.parseInt(t1.getId()) < Integer.parseInt(t2.getId())){result=-1;}
return result;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我不得不通过数据文本或TableObject所具有的其他数十个数据重新排序时,我遇到了问题.我不想创建几十个比较函数,每个函数对应一个.我不想使用开关(或ifs链)来决定如何比较对象.
有没有办法以某种方式做到这一点(比如Reflexive),这并不意味着我会写出数百行几乎相同的代码?
谢谢大家!
| 归档时间: |
|
| 查看次数: |
4080 次 |
| 最近记录: |