com.fpinjava.common.List.splitAt()方法的使用及代码示例

x33g5p2x  于2022-01-24 转载在 其他  
字(6.8k)|赞(0)|评价(0)|浏览(77)

本文整理了Java中com.fpinjava.common.List.splitAt()方法的一些代码示例,展示了List.splitAt()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。List.splitAt()方法的具体详情如下:
包路径:com.fpinjava.common.List
类名称:List
方法名:splitAt

List.splitAt介绍

暂无

代码示例

代码示例来源: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

private TailCall<Tuple<List<A>, List<A>>> splitAt(List<A> acc, List<A> list, int i) {
 return i == 0 || list.isEmpty()
   ? ret(new Tuple<>(list.reverse(), acc))
   : sus(() -> splitAt(acc.cons(list.head()), list.tail(), i - 1));
}

代码示例来源:origin: fpinjava/fpinjava

public Manager(String id, List<Integer> list, Actor<Integer> client, int workers) {
 super(id, Type.SERIAL);
 this.client = client;
 this.workers = workers;
 this.limit = list.length() - 1;
 Tuple<List<Tuple<Integer, Integer>>, List<Tuple<Integer, Integer>>> splitLists = list.zipWithPosition().splitAt(this.workers);
 this.initial = splitLists._1;
 this.workList = splitLists._2;
 this.resultHeap = Heap.empty((t1, t2) -> t1._2.compareTo(t2._2));
 managerFunction = manager -> behavior -> t -> {
  Tuple3<Heap<Tuple<Integer, Integer>>, Integer, List<Integer>> result =
    streamResult(behavior.resultHeap.insert(t),
      behavior.expected, List.list());
  result._3.reverse().forEach(this.client::tell);
  if (result._2 > limit) {
   this.client.tell(-1);
  } else {
   manager.getContext()
     .become(new Behavior(behavior.workList.tailOption()
       .getOrElse(List.list()), result._1, result._2));
  }
 };
}

代码示例来源:origin: fpinjava/fpinjava

public Manager(String id, List<Integer> list, Actor<Result<List<Integer>>> client, int workers) {
 super(id, Type.SERIAL);
 this.client = client;
 this.workers = workers;
 Tuple<List<Tuple<Integer, Integer>>, List<Tuple<Integer, Integer>>> splitLists = list.zipWithPosition().splitAt(this.workers);
 this.initial = splitLists._1;
 this.workList = splitLists._2;
 this.resultHeap = Heap.empty((t1, t2) -> t1._2.compareTo(t2._2));
 managerFunction = manager -> behavior -> i -> {
  Heap<Tuple<Integer, Integer>> result = behavior.resultHeap.insert(i);
  if (result.length() == list.length()) {
   this.client.tell(Result.success(result.toList().map(x -> x._1).reverse()));
  } else {
   manager.getContext()
     .become(new Behavior(behavior.workList
       .tailOption()
       .getOrElse(List.list()), result));
  }
 };
}

代码示例来源:origin: fpinjava/fpinjava

public Manager(String id, List<Integer> list, Actor<Result<List<Integer>>> client, int workers) {
 super(id, Type.SERIAL);
 this.client = client;
 this.workers = workers;
 Tuple<List<Integer>, List<Integer>> splitLists = list.splitAt(this.workers);
 this.initial = splitLists._1.zipWithPosition();
 this.workList = splitLists._2;
 this.resultList = List.list();
 managerFunction = manager -> behavior -> i -> {
  List<Integer> result = behavior.resultList.cons(i);
  if (result.length() == list.length()) {
   this.client.tell(Result.success(result.reverse()));
  } else {
   manager.getContext()
     .become(new Behavior(behavior.workList
       .tailOption()
       .getOrElse(List.list()), result));
  }
 };
}

代码示例来源:origin: fpinjava/fpinjava

public Manager(String id, List<Integer> list,
        Actor<Result<List<Integer>>> client, int workers) {
 super(id, Type.SERIAL);
 this.client = client;
 this.workers = workers;
 Tuple<List<Integer>, List<Integer>> splitLists =
   list.splitAt(this.workers);
 this.initial = splitLists._1.zipWithPosition();
 this.workList = splitLists._2;
 this.resultList = List.list();
 managerFunction = manager -> behavior -> i -> {
  List<Integer> result = behavior.resultList.cons(i);
  if (result.length() == list.length()) {
   this.client.tell(Result.success(result.reverse()));
  } else {
   manager.getContext()
     .become(new Behavior(behavior.workList
       .tailOption()
       .getOrElse(List.list()), result));
  }
 };
}

代码示例来源:origin: fpinjava/fpinjava

@Test
public void testRemoveHalfOrdered() {
 Tuple<List<Integer>, List<Integer>> lists = orderedTestList.splitAt(orderedTestList.length() / 2);
 List<Integer> list1 = lists._1;
 List<Integer> list2 = lists._2;
 Tree<Integer> m1 = list1.foldLeft(orderedTree, m -> m::delete);
 assertEquals(list2.length(), m1.size());
 assertTrue(arePathsBalanced(m1));
 assertTrue(arePathsEqual(m1));
 Tree<Integer> m2 = list1.foldLeft(m1, m -> m::insert);
 assertEquals(orderedTestList.length(), m2.size());
 assertTrue(arePathsBalanced(m2));
 assertTrue(arePathsEqual(m2));
}

代码示例来源:origin: fpinjava/fpinjava

@Test
public void testRemoveHalfOrdered() {
 Tuple<List<Integer>, List<Integer>> lists = orderedTestList.splitAt(orderedTestList.length() / 2);
 List<Integer> list1 = lists._1;
 List<Integer> list2 = lists._2;
 Tree<Integer> m1 = list1.foldLeft(orderedTree, m -> m::delete);
 assertEquals(list2.length(), m1.size());
 assertTrue(arePathsBalanced(m1));
 assertTrue(arePathsEqual(m1));
 Tree<Integer> m2 = list1.foldLeft(m1, m -> m::insert);
 assertEquals(orderedTestList.length(), m2.size());
 assertTrue(arePathsBalanced(m2));
 assertTrue(arePathsEqual(m2));
}

代码示例来源:origin: fpinjava/fpinjava

@Test
public void testRemoveHalfOrdered() {
 Tuple<List<Integer>, List<Integer>> lists = orderedTestList.splitAt(orderedTestList.length() / 2);
 List<Integer> list1 = lists._1;
 List<Integer> list2 = lists._2;
 Heap<Integer> h1 = list1.foldLeft(orderedHeap, t ->  e -> t.tail().getOrElse(t));
 assertEquals(list2.length(), h1.length());
 assertTrue(isBalanced(h1));
 assertTrue(isValueOrdered(h1));
 Heap<Integer> h2 = list1.foldLeft(h1, m -> m::add);
 assertEquals(orderedTestList.length(), h2.length());
 assertTrue(isBalanced(h2));
 assertTrue(isValueOrdered(h2));
}

代码示例来源:origin: fpinjava/fpinjava

@Test
public void testRemoveHalfOrdered() {
 Tuple<List<Integer>, List<Integer>> lists = orderedTestList.splitAt(orderedTestList.length() / 2);
 List<Integer> list1 = lists._1;
 List<Integer> list2 = lists._2;
 Heap<Integer> h1 = list1.foldLeft(orderedHeap, t ->  e -> t.tail().getOrElse(t));
 assertEquals(list2.length(), h1.length());
 assertTrue(isBalanced(h1));
 assertTrue(isValueOrdered(h1));
 Heap<Integer> h2 = list1.foldLeft(h1, m -> m::add);
 assertEquals(orderedTestList.length(), h2.length());
 assertTrue(isBalanced(h2));
 assertTrue(isValueOrdered(h2));
}

代码示例来源:origin: fpinjava/fpinjava

@Test
public void testRemoveHalfOrdered() {
 Tuple<List<Integer>, List<Integer>> lists = orderedTestList.splitAt(orderedTestList.length() / 2);
 List<Integer> list1 = lists._1;
 List<Integer> list2 = lists._2;
 Heap<Number> h1 = list1.foldLeft(orderedHeap, t ->  e -> t.tail().getOrElse(t));
 assertEquals(list2.length(), h1.length());
 assertTrue(isBalanced(h1));
 assertTrue(isValueOrdered(h1, comparator));
 Heap<Number> h2 = list1.foldLeft(h1, h -> i -> h.add(number(i)));
 assertEquals(orderedTestList.length(), h2.length());
 assertTrue(isBalanced(h2));
 assertTrue(isValueOrdered(h2, comparator));
}

相关文章