我必须检查arraylist中的“标记”是否按顺序增加。
private E[] data; // where the data is stored
private int size; // how many items have been added to the list
public TopSpinArray(int numTokens, int spinSize)
{
super(numTokens, spinSize);
data = (E[])(new Object[numTokens]);
size = 0;
}
public boolean isSolved()
{
for(int i = 0; i < numTokens; i++)
{
if(data[i] < data[i+1])
{
return true;
}
}
return false;
}
当我编译时,它说“二元运算符的错误操作数类型”&lt;' 第一种:E;第二种:E“
如何查看它们是否在增加?
答案 0 :(得分:4)
运算符<
仅对某些类型的对象有效。为了能够比较任何可比类型的对象(我将E
暗示您的令牌确实实现了Comparable
,否则您的问题毫无意义,)您可以使用compareTo()
:
for(int i = 0; i < numTokens - 1; i++) {
if(data[i].compareTo(data[i+1]) > 0) {
return false;
}
}
return true;