假设你有Strings
的List
或什么的,并且要产生另一个List
其中将包含来自两个strings
每一个可能的组合,原来的list
(concated在一起),有没有更有效的方法比使用要做到这一点其他嵌套0循环将字符串与所有其他字符串结合?找到所有组合的更有效方法?
一些示例代码:
for(String s: bytes) {
for(String a: bytes) {
if(!(bytes.indexOf(a) == bytes.indexOf(s))) {
if(s.concat(a).length() == targetLength) {
String combination = s.concat(a);
validSolutions.add(combination);
}
}
}
}
的执行时间变得很糟糕很快为的Strings
原list
生长的大小。
任何更有效的方法来做到这一点?
可能的重复http://stackoverflow.com/questions/7229743/generating-all-possible-combinations –
“IndexOfs”是问题。你能直接比较a和s吗? – Jimmy
@Jimmy,我不认为我可以,因为有重复的字符串组成一个有效的组合,例如“abc”和“abc”使得“abcabc”,所以如果我做a.equals(s)这不会真的工作为了我。 – LuxuryMode