java - 使用方法在 ArrayList 中循环

标签 java methods multidimensional-array arraylist anagram

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

相关文章:

oop - 为什么没有为不同的返回类型定义方法重载?

mysql - 多维mysql选择?

java - FontFactor.getFont() 的编码

java - JPanel 作为 TableCellEditor 消失

java - 如何获取文档字段的 TokenStream 以用于突出显示?

string - 这两个err值有什么区别?

java - 使用泛型来增加集合

c++ - 如何在方法模板中使用模板类型的引用传递参数?

c - 使用 3D 数组 - 无法进行输出

Java 二维数组 for 循环不读取最后一个值