java - 小阵列有问题

标签 java arrays

尝试学习和练习数组,但我对这个小例子有疑问。有人可以帮我吗?谢谢

public class Homework1{
public static void main(String[] args){
    int[] anArray={ 1,2,3,4,5,6,7,8,9};

    System.out.println(anArray.length);
    int min=0;
    int max=0;

    for(int i=0; i<anArray.length; i++){
        if(anArray[i].compareTo(anArray[min]) < 0)
            min=i;

        if(anArray[i].compareTo(anArray[max]) > 0)
            max=i;
    }

    System.out.println(max);
    System.out.println(min);
}
}

我收到此错误消息:

int cannot be dereferenced
        if(anArray[i].compareTo(anArray[min]) < 0)
int cannot be dereferenced
        if(anArray[i].compareTo(anArray[max]) > 0)

谢谢。

最佳答案

表达式anArray[i] 的类型是intint 是原始类型,这意味着它不是“真正的”对象。您不能在原始类型上调用方法(如 compareTo())。

但是,您可以调用 Integer 类型的方法,它是对应于 int 的“装箱”类型。 (装箱类型是当您需要将原始类型视为对象时用作包装器的类型。)

只需对整数类型使用常规比较运算符:

if (anArray[i] < anArray[min]) {
    //...
}

关于java - 小阵列有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9541948/

相关文章:

Java:如何找到部分初始化排序数组的最后一个元素的索引

Javascript:在数组中的对象中查找数组中对象属性的最大值:D

java - NotSerializableException(更新处理程序)

Java 线程暂停后无法恢复

java.lang.AssertionError : one method tests correctly but a similar one does not 错误

javascript - 代码错误 - 分割字符串并返回每个单词的长度 JS

c++ - 使用按位运算符仅查找数组中存在一次的数字

java - Java 中 N 维数组的大小可以改变吗?

java - 为什么这里的主线程不等待t2?在这里,输出始终大于20000,但不一致

java - 访问 Camel Freemarker ftl 中的 RequestParameters