在很多帮助下,我开发了一种方法,可以制作字谜词,然后将它们添加到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
s 在一个循环中添加String
s 从一ArrayList
对于另一个,我收到一个错误,说我不能使用 void,并且该方法f()
无效。
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
}
让我再次澄清一下:
我想用这个函数来插入ArrayList
s 字谜词到另一个位置的每个位置ArrayList
。字谜列表源自String
正在从一个列表读取到另一个列表。我尝试将方法更改为静态,但这不起作用,我还删除了return;
在该方法中一次,但这也不能解决问题。
我该如何让这一切发挥作用?
发生错误是因为该方法f()
is 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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)