gpt4 book ai didi

java - 使用方法在 ArrayList 中循环

转载 作者:行者123 更新时间:2023-12-03 07:49:53 26 4
gpt4 key购买 nike

在很多帮助下,我开发了一种方法,可以生成字谜,然后将它们添加到 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com