【发布时间】:2022-10-15 02:21:27
【问题描述】:
如果它们是相同的类型,我想比较元素的集合(ArrayList)。一开始我不知道元素是什么类型(泛型类型),所以我决定使用 Object 类型。但我仍然无法比较它们。问题出在函数triplesort() 中。
警告是:Operator '>' cannot be applied to 'java.lang.Object', 'java.lang.Object'.
如果您对此问题有任何可能的解决方案并告诉我,我将不胜感激。 <3
三重java
import java.util.ArrayList;
public class Triple<T, S, U> {
private T t;
private S s;
private U u;
private ArrayList<Object> array = new ArrayList<Object>();
Triple(T t, S s, U u) {
setT(t);
setS(s);
setU(u);
array.add(this.t);
array.add(this.s);
array.add(this.u);
}
public void setT(T t) {
this.t = t;
}
public void setS(S s) {
this.s = s;
}
public void setU(U u) {
this.u = u;
}
public T getFirst() {
return t;
}
public S getSecond() {
return s;
}
public U getThird() {
return u;
}
public String toString() {
return t + "\n" + s + "\n" + u + "\n";
}
public boolean isHomogeneous() {
return t.getClass() == s.getClass() && t.getClass() == u.getClass();
}
public void tripleSort() {
try {
for (int i = 1; i < array.size(); ++i) {
Object key = array.get(i);
int j = i - 1;
while (j > -1 && array.get(i) > key) {
array.set(j + 1, array.get(j));
j--;
}
array.set(j + 1, key);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
【问题讨论】:
-
您只能将原语与这些运算符进行比较。这些对象是
Comparable吗? -
由于一个对象是任何东西,问某物是否“大于”它是什么意思?
-
其实你可以忽略我的问题。您只能比较相同的类型
标签: java sorting comparison