【问题标题】:Java creating an even ArrayList [closed]Java 创建一个偶数 ArrayList [关闭]
【发布时间】:2014-06-06 12:20:11
【问题描述】:
public static List subList(List l)
{
    List evenL = new ArrayList();

    for (int i = 0; i < l.size(); i++)
    {
         if (l.get(i))%2 ==0)
         {
             evenL.add(i);
         }
    }
    return evenL;
}

在这种情况下得到一个 % 未定义的错误。不知道如何检索创建带有偶数​​的新列表。

【问题讨论】:

  • 我认为你错过了 if() 行中的一个小括号
  • 请先学习如何编写您的编译器可以编译而没有语法警告的代码。
  • @Smutje,感谢您对我的语法错误的关注,但正如您从我的代码中清楚地看到的那样,我是使用 ArrayLists 的新手,由于其他人的帮助,现在才看到如何修复它论坛。

标签: java arraylist


【解决方案1】:

您的List 是否包含Integer 类型?如果是这样,您需要将泛型应用于if 语句中使用的List,以便get 可以检索存储的值

public static List subList(List<Integer> list) {
    List<Integer> evenList = new ArrayList<>();

    for (int i = 0; i < list.size(); i++) {
        if (list.get(i) % 2 == 0) { // minus )
            evenList.add(i);
        }
    }

    return evenList;
}

【讨论】:

  • 参数化返回类型怎么样? :)
【解决方案2】:

正如之前所说,你有一个额外的)

并且您的List 没有使用Integer 参数化。

public static List<Integer> subList(List<Integer> l) {
    List<Integer> evenL = new ArrayList<Integer>();

    for (int i = 0; i < l.size(); i++)
    {
         if (l.get(i) % 2 ==0)
         {
             evenL.add(i);
         }
    }
    return evenL;
}

【讨论】:

    【解决方案3】:

    使用

    List<Integer>
    

    否则列表元素是Object,您不能将算术运算应用于Object

    【讨论】:

      【解决方案4】:
      if (l.get(i))%2 ==0)
      

      应该是

      if (l.get(i)%2 == 0)
      

      【讨论】:

        【解决方案5】:

        if 语句中有一个额外的)。将其更改为:

        if (l.get(i) % 2 ==0)
        {
            evenL.add(i);
        }
        

        如果您使用,您可以使用Stream API 并在单个语句中执行所需的过滤:

        public static List<Integer> subList(List<Integer> myList) {
            return mylist.stream()
                         .filter(x -> x % 2 == 0)
                         .collect(Collectors.toList());
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-08-01
          • 1970-01-01
          • 1970-01-01
          • 2021-05-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多