Java8stream流实现字符串的全排列
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Pailiezuhe {
public static void main(String[] args){
List<String> list = Arrays.asList("abcd".split(""));
System.out.println(permutationNoRepeat(list,2));
}
//list是返回的结果集,length是要组合的字符串长度java stream
public static List<String>permutationNoRepeat(List<String> list,int length){
Stream<String> stream = list.stream();
for(int i =1; i < length; i++){
stream = stream.flatMap(s -> list.stream().filter(aChar ->!s.contains(aChar)).map(aChar -> s.concat(aChar)));
}
List());
}
}
运⾏结果
//length=2
[ab, ac, ad, ba, bc, bd, ca, cb, cd, da, db, dc]
//length=3
[abc, abd, acb, acd, adb, adc, bac, bad, bca, bcd, bda, bdc, cab, cad, cba, cbd, cda, cdb, dab, dac, dba, dbc, dca, dcb]
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论