我在JAVA中需要一些帮助: 我有一个函数签名,我无法更改,我的函数需要递归并返回String数组,没有任何选项将其添加到签名中。
这是我的签名:
public String[] findSimilar(String w, int index, int k)
该函数在TRIE结构中查找相似的单词,它们之间的K字母变化不同。
例如 - 在TRIE中,单词hello,nice,nine,cry,单词“bike”和k = 2,该函数将返回String[]
,其中包含nice和9。
我不是在找一个解决方案,只是为了一个返回字符串数组的方法。
**我写了一个带有我作为包装器收到的签名的函数,但我发现我不能使用包装器。
谢谢!
答案 0 :(得分:1)
我不是在找一个解决方案,只是为了一个返回字符串数组的方法。
要返回包含文字string1
和string2
的字符串数组,您只需使用return new String[] { "string1", "string2"};
,例如String[] arr = new String[2];
arr[0] = "string1";
arr[1] = "string2";
return arr;
否则,如果您事先知道将返回多少元素,则可以创建String数组并为其位置指定值:
{{1}}
如果它是递归函数的返回类型,您可能需要使用递归调用的结果在当前调用中构建自己的结果。考虑到无法扩展数组,您需要创建一个具有预期大小的新数组,并将结果的值复制到其中,例如array initializer。
答案 1 :(得分:1)
琐碎的例子:
public String[] findSimilar(String w, int index, int k) {
return new String[] {"string1","string2"}
}
也许更有用:
public String[] findSimilar(String w, int index, int k) {
List<String> similar = new ArrayList<>();
// insert some implementation here
return similar.toArray(new String[similar.size()]);
}
答案 2 :(得分:0)
使用类似的东西。 我不想提供完整的代码只是一个想法
public String[] findSimilar(String w, int index, int k) {
String[] res1=findSimilar(conditions one);
String[] res2=findSimilar(conditions two);
String[] res=new String[res1.length+res2.length];
//use public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
System.arraycopy(copyFrom, ..., copyTo, ..., ...);
}