【发布时间】:2013-03-02 01:39:44
【问题描述】:
在很多帮助下,我开发了一种制作字谜然后将它们添加到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);
}
}
问题是当我尝试使用此函数在一个循环中创建ArrayLists 时,将Strings 从一个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
}
让我再次澄清一下:
我想使用这个函数将ArrayLists 的字谜插入另一个ArrayList 的每个位置。字谜列表源自从一个列表读取到另一个列表的Strings。我尝试将方法更改为静态但不起作用,我还删除了方法中的return; 一次,但这也不能解决它。
我怎样才能让这整件事发挥作用?
【问题讨论】:
-
words是从哪里定义的? -
List是一个糟糕的变量名,因为它会隐藏类型名称。为清楚起见,将您的 for 循环替换为for (String word : words),然后采纳以下建议。 -
单词
words是正在读取的ArrayList的名称。我将List更改为fList并将ArrayList名称更改为fLists
标签: java methods multidimensional-array arraylist anagram