【问题标题】:Why am I gettting cannot find symbol error? I'm blind/learning Java为什么我得到找不到符号错误?我是盲人/学习 Java
【发布时间】:2020-01-03 19:28:05
【问题描述】:
import java.util.*;
public class centeredAverage {
    public static void main(int[] nums) {
    int count = 0;
    int max = 0;
    for (int i = 0; i < nums.length; i++) {
     max = Math.max(max, nums[i]);
    }
    int min = max;
    for (int i = 0; i < nums.length; i++) {
      min = Math.min(min, nums[i]);
    }
    for (int i = 0; i < nums.length; i++) {
      if (nums[i] == max) {
        nums = nums.subList(0, nums[i]) + nums.sublist(nums[i]+1, nums.length);
    }
      if (nums[i] == min) {
        nums = nums.subList(0, nums[i]) + nums.sublist(nums[i]+1, nums.length);
      }
    }
    for (int i = 0; i < nums.length; i++) {
      count += nums[i];
    }
   return count/nums.length;
}

错误在第 16 行:

找不到符号

符号:方法 subList(int,int)

位置:int[] 类型的变量 nums

【问题讨论】:

  • nums 是一个 int 数组。 Java 中的数组不定义方法。因此,您不能在数组上调用 subList(...)。即使代码可以工作,subList(...) 也建议返回 List&lt;...&gt;,而不是数组。
  • 我该怎么做才能做我想做的事?
  • 我不知道,因为我不知道你想做什么。

标签: java list arraylist sublist


【解决方案1】:

你先运行subList,然后运行sublist,错误是指小写sublist。 JAVA编译器区分大小写。

【讨论】:

    【解决方案2】:

    您已将“nums”定义为整数值数组:int[] nums。在您引用nums 的任何地方,编译器将只允许您执行对整数数组有效的操作。

    例如,这是允许的:

    int len = nums.length;
    

    但这不会——因为.subList() 不是你可以在数组上调用的东西:

    nums = nums.subList(...);
    

    为了提取数组的一部分,你可以使用Arrays.copyOfRange(),像这样:

    int[] partOfNums = Arrays.copyOfRange(nums, 0, 4);
    

    【讨论】:

      【解决方案3】:

      据我了解,nums 是一个没有该方法的数组。

      【讨论】:

        【解决方案4】:

        尝试使用 eclipse ide 或任何 ide..使用 nums.sublist..bcoz 数组没有方法时会出现编译错误

        【讨论】:

          猜你喜欢
          • 2012-10-18
          • 1970-01-01
          • 1970-01-01
          • 2017-07-22
          • 2017-11-17
          • 2013-04-18
          • 2019-08-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多