java - 比较数组列表中的元素

标签 java arrays compare

我必须检查数组列表中的“标记”是否按递增顺序排列。

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;
}

当我编译时,它说“二元运算符'<'的操作数类型错误 第一种:E;第二种:E”

如何检查它们是否在增加?

最佳答案

运算符(operator)<仅对某些类型的对象有效。为了能够比较任何可比较类型的对象(我用你的 E 来暗示你的 token 确实实现了 Comparable ,因为否则你的问题就没有意义,)你可以使用 compareTo() :

for(int i = 0; i < numTokens - 1; i++) {
     if(data[i].compareTo(data[i+1]) > 0) { 
         return false;
     }
}
return true;

关于java - 比较数组列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16004003/

相关文章:

java - 如何使用 pojo 从数据存储中检索实体?

php - 数组索引自动从 1 开始

python - 如何根据Python中的条件用2级列替换数据框中的值?

arrays - 比较两个文本框中的单词以找出差异?

java - BlockingQueue 的 take() 方法的延迟是多少?

java - 重命名目录和一些包含文件/子目录

java - 使用 Java 的 GUI 应用程序的进度条

arrays - 快速更新数组中对象的属性,不起作用

arrays - 通过 Powershell 的 Web 服务使用复杂对象?

ios - if(NSOrderedAscending == result) 有人能解释一下吗