将nextInt与数组一起使用(从java开始)

时间:2013-12-04 02:17:29

标签: java arrays

对于编程任务,我们必须创建执行不同任务的数组方法。 对于这个,我必须返回数组中的第二大元素。

以下是我的方法正文。值[i] = values.nextInt();出现错误;行说“不能在数组类型int []上调用nextInt()”它的其余部分应该工作正常(据我所知..我没有其他错误,但我还没有测试过)关于如何我可以修复nextInt错误?

谢谢!

     public int returnSecondLargest(){
     int secondLargest = Integer.MIN_VALUE;
     int largest = Integer.MIN_VALUE;
     for (int i = 0; i < values.length; i++) {
         values[i] = values.nextInt();
         if (largest < values[i]) {
             secondLargest = largest;
             largest = values[i];
         }
         if (secondLargest < values[i] && largest != values[i])
             secondLargest = values[i];
        }
     return secondLargest;
 }

3 个答案:

答案 0 :(得分:1)

您可以使用Arrays类并对数组进行排序。在这种情况下,它将是一个升序,所以你想要数组中倒数第二的东西,这就是为什么我在数组上调用索引 - array.length-2。如果我调用了array.length-1,你将得到最后一个索引,这是数组中最大的数字。使用此方法,您只需将数组传入参数即可。

public int secondLargest(int[] array){
        Arrays.sort(array);

        return array[array.length-2];

 }

答案 1 :(得分:0)

简单地说,values是一个数组(不是Array类)。它没有像nextInt这样的方法。

  

数组是一个容器对象,它包含固定数量的值   单一类型。数组的长度是在数组的时候建立的   创建

我喜欢将它视为基本类型(它不是),因为数组和基元类型都没有操作它们的方法,但是包含可以包含方法的类/对象。

返回第二大的方法可以通过删除该行来实现,我不知道你为什么要这样做。

答案 2 :(得分:0)

 public int returnSecondLargest(){
     int secondLargest = Integer.MIN_VALUE;
     int largest = Integer.MIN_VALUE;
     for (int i = 0; i < values.length; i++) {
         if(values[i] > values[i+1]){
             int temp = values[i];
             values[i] =values[i + 1];
             values[i+1] = temp;
         }
    }
    return values[values.length - 2];
}