在java中使用ArrayList
我在使用ArrayList函数时遇到问题。我试图找出序列中的项目是否都相同 e、 g.allSame返回true,allSame返回false 这是我到目前为止所写的,但它给了我一个错误,说它找不到符号-方法长度,并且需要一个数组在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])
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;
}