本文整理了Java中com.fpinjava.common.List
类的一些代码示例,展示了List
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。List
类的具体详情如下:
包路径:com.fpinjava.common.List
类名称:List
暂无
代码示例来源:origin: fpinjava/fpinjava
private static List<Solution> results(List<Integer> ns) {
return ns.isEmpty()
? List.list()
: ns.length() == 1
? ns.flatMap(n -> n > 0 ? List.list(new Solution(Expr.expr(n), n)) : List.list())
: split(ns).flatMap(t1 -> results(t1._1).flatMap(lx -> results(t1._2).flatMap(ry -> combine(lx, ry))));
}
代码示例来源:origin: fpinjava/fpinjava
public static Tuple<List<Integer>, RNG> integers2(RNG rng, int length) {
List<Tuple<Integer, RNG>> result = List.range(0, length).foldLeft(List.list(), lst -> i -> lst.cons(integer(rng)));
List<Integer> list = result.map(x -> x._1).reverse();
Result<Tuple<List<Integer>, RNG>> result2 = result.headOption().map(tr -> new Tuple<>(list, tr._2));
return result2.getOrElse(new Tuple<>(List.list(), rng));
}
代码示例来源:origin: fpinjava/fpinjava
public <A1, A2> Tuple<List<A1>, List<A2>> unzip(Function<A, Tuple<A1, A2>> f) {
return this.foldRight(new Tuple<>(list(), list()), a -> tl -> {
Tuple<A1, A2> t = f.apply(a);
return new Tuple<>(tl._1.cons(t._1), tl._2.cons(t._2));
});
}
代码示例来源:origin: fpinjava/fpinjava
private List<List<A>> divide(List<List<A>> list, int depth) {
return list.head().length() < depth || depth < 2
? list
: divide(list.flatMap(x -> x.splitListAt(x.length() / 2)), depth / 2);
}
代码示例来源:origin: fpinjava/fpinjava
public static <T> List<T> fromCollection(Collection<T> ct) {
List<T> lt = list();
for (T t : ct) {
lt = lt.cons(t);
}
return lt.reverse();
}
代码示例来源:origin: fpinjava/fpinjava
public Tuple<List<A>, List<A>> splitAt(int index) {
return index < 0
? splitAt(0)
: index > length()
? splitAt(length())
: splitAt(list(), this.reverse(), this.length() - index).eval();
}
代码示例来源:origin: fpinjava/fpinjava
@Test
public void testAdd2() throws Exception {
List<Integer> list = List.list(7, 3, 1, 6, 4, 6, 2);
Heap<Integer> queue = list.foldLeft(Heap.<Integer>empty(), h -> h::add);
List.list(1, 2, 3, 4, 6, 6, 7).zipWithPositionResult().forEachOrThrow(testList -> List.sequence(testList.map(t -> queue.get(t._2).map(v -> v.equals(t._1)))).map(lst -> lst.forAll(x -> x)).forEachOrThrow(Assert::assertTrue));
}
}
代码示例来源:origin: fpinjava/fpinjava
@Test
public void testFold() {
int limit = 50;
List<Integer> list = List.range(1, limit + 1);
List<String> expected = list.reverse().map(NumbersToEnglish.convertUS);
Map<Integer, String> map = list.foldLeft(Map.<Integer, String>empty(), m -> i -> m.add(i, NumbersToEnglish.convertUS.apply(i)));
Result<List<String>> rl = List.sequence(map.foldLeft(List.<Result<String>>list(), lst -> me -> lst.cons(me.value), l1 -> l2 -> List.concat(l1, l2)));
assertTrue(rl.map(expected::equals).getOrElse(false));
}
代码示例来源:origin: fpinjava/fpinjava
@Test
public void testListFoldLeft() {
List<Integer> list1 = List.unfold(0, i -> i < 20
? Result.success(new Tuple<>(i, i + 1))
: Result.empty());
List<Integer> list2 = list1.foldLeft(List.list(), l -> i -> l.reverse().cons(i).reverse());
assertEquals(list1, list2);
}
代码示例来源:origin: fpinjava/fpinjava
public Tuple<List<A>, List<A>> splitAt_(int index) {
int ii = index < 0 ? 0 : index >= length() ? length() : index;
Tuple3<List<A>, List<A>, Integer> identity = new Tuple3<>(List.list(), List.list(), ii);
Tuple3<List<A>, List<A>, Integer> rt = foldLeft(identity, ta -> a -> ta._3 == 0 ? new Tuple3<>(ta._1, ta._2.cons(a), ta._3) : new Tuple3<>(ta._1.cons(a), ta._2, ta._3 - 1));
return new Tuple<>(rt._1.reverse(), rt._2.reverse());
}
代码示例来源:origin: fpinjava/fpinjava
public static Tuple<List<Integer>, RNG> integers(RNG rng, int length) {
Tuple<List<Tuple<Integer, RNG>>, RNG> result = List.range(0, length).foldLeft(new Tuple<>(List.list(), rng), tuple -> i -> {
Tuple<Integer, RNG> t = integer(tuple._2);
return new Tuple<>(tuple._1.cons(t), t._2);
});
List<Integer> list = result._1.map(x -> x._1);
return new Tuple<>(list, result._2);
}
代码示例来源:origin: fpinjava/fpinjava
@Test
public void testSequence() {
Function<String, Option<Integer>> parse16 = Option.hlift(parseWithRadix.apply(16));
List<String> list = List.list("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
assertEquals("Some([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, NIL])", Option.sequence(list.map(parse16)).toString());
}
代码示例来源:origin: fpinjava/fpinjava
@Test
public void testAdd2() throws Exception {
List<Integer> list = List.list(7, 3, 1, 6, 4, 6, 2);
Heap<Integer> queue = list.foldLeft(Heap.<Integer>empty(), h -> h::add);
queue.head().map(a -> a == 1).forEachOrThrow(Assert::assertTrue);
}
}
代码示例来源:origin: fpinjava/fpinjava
@Test
public void testListFoldRight() {
List<Integer> list1 = List.unfold(0, i -> i < 20
? Result.success(new Tuple<>(i, i + 1))
: Result.empty());
List<Integer> list2 = list1.foldRight(List.list(), i -> l -> l.cons(i));
assertEquals(list1, list2);
}
代码示例来源:origin: fpinjava/fpinjava
private static boolean arePathsEqual(Tree<?> tree) {
List<List<Tree.Color>> keepBlacks = tree.pathColors().map(list -> list.filter(Tree.Color::isB));
int blackLength = keepBlacks.headOption().map(List::length).getOrElse(0);
return keepBlacks.forAll(lst -> lst.length() == blackLength);
}
代码示例来源:origin: fpinjava/fpinjava
private TailCall<List<List<A>>> splitListAt(List<A> acc, List<A> list, int i) {
return i == 0 || list.isEmpty()
? ret(List.list(list.reverse(), acc))
: sus(() -> splitListAt(acc.cons(list.head()), list.tail(), i - 1));
}
代码示例来源:origin: fpinjava/fpinjava
public static <E, A, B> Either<E, List<B>> traverseRecursive(List<A> as, Function<A, Either<E, B>> f) {
return as.isEmpty()
? Either.right(List.list())
: f.apply(as.head()).map2(traverseRecursive(as.tail(), f), x -> y -> y.cons(x));
}
代码示例来源:origin: fpinjava/fpinjava
@Test
public void testInsertRandom10() {
List<Integer> list = List.list(2, 5, 2, 7, 3, 1, 6, 1, 4, 1);
Heap<Integer> heap = list.foldLeft(Heap.<Integer>empty(), h -> h::insert);
assertEquals(list.length(), heap.length());
assertTrue(isBalanced(heap));
assertTrue(isValueOrdered(heap));
}
代码示例来源:origin: fpinjava/fpinjava
@Test
public void testInsertOrderedAscending7() {
int limit = 7;
List<Integer> list = List.range(1, limit + 1);
Map<Number, String> map = list.foldLeft(Map.<Number, String>empty(), m -> i -> m.add(number(i), NumbersToEnglish.convertUS.apply(i)));
assertTrue(list.forAll(i -> map.contains(number(i))));
assertTrue(List.sequence(list.map(i -> map.get(number(i)).map(x -> x._2).map(y -> y.equals(NumbersToEnglish.convertUS.apply(i))))).map(z -> z.forAll(w -> w)).getOrElse(false));
}
代码示例来源:origin: fpinjava/fpinjava
@Test
public void testFoldRight() {
List<Integer> list0 = List.list(4, 2, 1, 3, 6, 5, 7);
List<Integer> list1 = Tree.tree(list0).foldRight(List.list(), a -> list -> list.cons(a), x -> y -> x.concat(y));
assertEquals(list0.toString(), list1.toString());
}
}
内容来源于网络,如有侵权,请联系作者删除!