public static Stream<Integer> range(final Integer start, Integer length, Integer step, List<Integer> except) { Supplier<Integer> seed = new Supplier<Integer>() { private Integer next = start; @Override public Integer get() { Integer _next = next; next += step; return _next; } }; return Stream.generate(seed).limit(length).filter(new Predicate<Integer>() { @Override public boolean test(Integer t) { if (except == null) return true; if (except.contains(t)) return false; return true; } }); } List<Integer> list = new ArrayList<Integer>(); AtomicInteger count = new AtomicInteger(0); public void WholeArrangement(int N) { Stream<Integer> range = range(0, N, 1, list); range.forEach(new Consumer<Integer>() { @Override public void accept(Integer t) { list.add(t); WholeArrangement(N); list.remove(list.size() - 1); } }); if (list.size() == N) { count.incrementAndGet(); System.out.println(Arrays.toString(list.toArray())); } }
Java递归全排列
猜你喜欢
转载自solong1980.iteye.com/blog/2391184
今日推荐
周排行