java通过泛型属性的属性对对象进行排序
假设我有这门课:
public class Bucket<T> {
T filling;
}
填充属性可以是以下任一属性的实例:
public class Oil{
float volume;
}
或
public class Water{
float volume;
}
在代码的一部分中,我有一个存储桶列表:
LinkedList<Bucket> list;
现在,我想按属性“volume”对“list”(Bucket)的元素进行排序。
但我无法比较T.volume
。那么,我该怎么做呢
如果我的问题很愚蠢,请提前道歉,我仍在学习java
# 1 楼答案
假设这是一个理论问题,我不建议你去实现它,而是要找到一个更好的模式去做你想做的事情
您要对存储桶列表进行排序。呼叫集合。sort()方法,Bucket需要实现Comparable(因此要定义compareTo方法)
您应该定义一个由“填充”元素实现的接口
现在您可以定义Bucket类:
该代码:
将打印:
真丢脸,我写了整个代码,但阅读这段代码要比阅读我能写的糟糕解释更容易理解