在很多帮助下,我开发了一种方法,可以生成字谜,然后将它们添加到 ArrayList
中。
public void f(String s, String anagram, ArrayList<String> array)
{
if(s.length() == 0)
{
array.add(anagram);
return;
}
for(int i = 0 ; i < s.length() ; i++)
{
char l = s.charAt(i);
anagram = anagram + l;
s = s.substring(0, i) + s.substring(i+l, s.length());
f(s,anagram,array);
}
}
问题是当我尝试使用此函数在一个循环中创建 ArrayList
时,该循环将 String
从一个 ArrayList
添加到另一个,我收到一条错误消息,说我不能使用 void,并且方法 f()
是 void。
List<String> Lists = new ArrayList<String>(); //makes new array list
for(String List : words)
{ //takes values from old array list
List.trim();
Lists.add(f(List,"",new ArrayList<String>())); //this is where it doesn't work
}
再说一遍:
我想使用此函数将 Anagrams 的 ArrayList
插入到另一个 ArrayList
的每个位置。 anagram 列表派生自从一个列表读取到另一个列表的 String
。我尝试将方法更改为静态,但这不起作用,我还删除了方法中的 return;
一次,但这也没有解决它。
我如何让这一切发挥作用?
最佳答案
错误发生是因为方法f()
是void
,意思是:它不返回任何可以添加到 ArrayList
的值.
调用f()
的答案存储在 ArrayList
中作为参数传递给 f
,你应该使用 that ArrayList
将其所有元素添加到 Lists
.像这样:
List<String> lists = new ArrayList<String>();
for (String list : words) {
list.trim();
ArrayList<String> answer = new ArrayList<String>();
f(list, "", answer);
lists.addAll(answer);
}
关于java - 使用方法在 ArrayList 中循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15396858/