在java中使用ArrayList

在java中使用ArrayList,java,Java,我在使用ArrayList函数时遇到问题。我试图找出序列中的项目是否都相同 e、 g.allSame返回true,allSame返回false 这是我到目前为止所写的,但它给了我一个错误,说它找不到符号-方法长度,并且需要一个数组 public boolean allSame(ArrayList<Double> s) { for (int i=0; i<s.length(); i++) if (s[i] == s[i+1])

我在使用ArrayList函数时遇到问题。我试图找出序列中的项目是否都相同

e、 g.allSame返回true,allSame返回false

这是我到目前为止所写的,但它给了我一个错误,说它找不到符号-方法长度,并且需要一个数组

    public boolean allSame(ArrayList<Double> s)
     {
        for (int i=0; i<s.length(); i++)
          if (s[i] == s[i+1])
          return true;          }
因为它是大小而不是长度

请看一下文档,

ArrayList没有任何称为length的方法。要访问ArrayList的大小,需要使用To size方法


您应该尝试使用s.size,s.length不适用于列表。

除了s.size问题之外,该方法在逻辑上也不会像您使用的方法那样工作

这应该起作用:

public boolean allSame(ArrayList<Double> s) {
    for (int i=0; i<s.size() - 1; i++) {
        if ( s.get(i) != s.get(i+1) )
            return false;
    }
    return true;
}

您的迭代得到边界外异常

像这样做

public static boolean allSame(List<Double> s) {

        for (int i=0; i < (s.size()-1); i++) {

           if (s.get(i) != s.get(i+1)){
              return false;          
           }

        }

        return true;
 }

为什么我们有4个答案和3个反对票?我觉得回答问题的人应该确保它没有被否决。哦,谢谢你的s.size,我试过你的代码,但它给出了if循环部分所需的相同数组错误。我认为应该这样做。
public static boolean allSame(List<Double> s) {

        for (int i=0; i < (s.size()-1); i++) {

           if (s.get(i) != s.get(i+1)){
              return false;          
           }

        }

        return true;
 }