annotate src/jungle/test/functionalJava/ListTest.java @ 54:3d78d438f97b

add ListTest
author one
date Sun, 14 Jul 2013 17:21:37 +0900
parents
children ccfe9b5e8f11
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
54
3d78d438f97b add ListTest
one
parents:
diff changeset
1 package jungle.test.functionalJava;
3d78d438f97b add ListTest
one
parents:
diff changeset
2
3d78d438f97b add ListTest
one
parents:
diff changeset
3 import java.util.Iterator;
3d78d438f97b add ListTest
one
parents:
diff changeset
4
3d78d438f97b add ListTest
one
parents:
diff changeset
5 import fj.P2;
3d78d438f97b add ListTest
one
parents:
diff changeset
6 import fj.data.List;
3d78d438f97b add ListTest
one
parents:
diff changeset
7
3d78d438f97b add ListTest
one
parents:
diff changeset
8 public class ListTest{
3d78d438f97b add ListTest
one
parents:
diff changeset
9
3d78d438f97b add ListTest
one
parents:
diff changeset
10 public static void main(String[] args) {
3d78d438f97b add ListTest
one
parents:
diff changeset
11 List<Integer> list = List.nil();
3d78d438f97b add ListTest
one
parents:
diff changeset
12 list = list.cons(1);
3d78d438f97b add ListTest
one
parents:
diff changeset
13 list = list.cons(2);
3d78d438f97b add ListTest
one
parents:
diff changeset
14 list = list.cons(4);
3d78d438f97b add ListTest
one
parents:
diff changeset
15 System.out.println("list :"+list);
3d78d438f97b add ListTest
one
parents:
diff changeset
16 System.out.println("list.index(0) :"+list.index(0));
3d78d438f97b add ListTest
one
parents:
diff changeset
17 System.out.println("list.head() :"+ list.head());
3d78d438f97b add ListTest
one
parents:
diff changeset
18 System.out.println("list.tail() :"+list.tail());
3d78d438f97b add ListTest
one
parents:
diff changeset
19 System.out.println("list.splitAt(2)");
3d78d438f97b add ListTest
one
parents:
diff changeset
20 P2<List<Integer>, List<Integer>> p2 = list.splitAt(2);
3d78d438f97b add ListTest
one
parents:
diff changeset
21 List<Integer> list1 = p2._1();
3d78d438f97b add ListTest
one
parents:
diff changeset
22 List<Integer> list2 = p2._2();
3d78d438f97b add ListTest
one
parents:
diff changeset
23 System.out.println(list1);
3d78d438f97b add ListTest
one
parents:
diff changeset
24 System.out.println(list2);
3d78d438f97b add ListTest
one
parents:
diff changeset
25
3d78d438f97b add ListTest
one
parents:
diff changeset
26 final int INSERT_NUM = 3;
3d78d438f97b add ListTest
one
parents:
diff changeset
27 list = insertInteger(list, INSERT_NUM);
3d78d438f97b add ListTest
one
parents:
diff changeset
28 System.out.println("newList :"+ list);
3d78d438f97b add ListTest
one
parents:
diff changeset
29 }
3d78d438f97b add ListTest
one
parents:
diff changeset
30
3d78d438f97b add ListTest
one
parents:
diff changeset
31 public static List<Integer> insertInteger(List<Integer> list, final int insertNum) {
3d78d438f97b add ListTest
one
parents:
diff changeset
32 int count = 0;
3d78d438f97b add ListTest
one
parents:
diff changeset
33 for(Iterator<Integer> iter = list.iterator(); iter.hasNext();){
3d78d438f97b add ListTest
one
parents:
diff changeset
34 int num = iter.next();
3d78d438f97b add ListTest
one
parents:
diff changeset
35 if(insertNum > num ) {
3d78d438f97b add ListTest
one
parents:
diff changeset
36 break;
3d78d438f97b add ListTest
one
parents:
diff changeset
37 }
3d78d438f97b add ListTest
one
parents:
diff changeset
38 count++;
3d78d438f97b add ListTest
one
parents:
diff changeset
39 }
3d78d438f97b add ListTest
one
parents:
diff changeset
40 P2<List<Integer>, List<Integer>> p2 = list.splitAt(count);
3d78d438f97b add ListTest
one
parents:
diff changeset
41 List<Integer> newList = List.nil();
3d78d438f97b add ListTest
one
parents:
diff changeset
42 newList = p2._2().cons(insertNum);
3d78d438f97b add ListTest
one
parents:
diff changeset
43 newList = p2._1().append(newList);
3d78d438f97b add ListTest
one
parents:
diff changeset
44 return newList;
3d78d438f97b add ListTest
one
parents:
diff changeset
45 }
3d78d438f97b add ListTest
one
parents:
diff changeset
46
3d78d438f97b add ListTest
one
parents:
diff changeset
47
3d78d438f97b add ListTest
one
parents:
diff changeset
48 }