// Path: src/main/java/social/roo/utils/ArrayUtils.java
// @NoArgsConstructor(access = AccessLevel.PRIVATE)
// public class ArrayUtils {
// 
//     public static long[] append(long[] arr, long element) {
//         final int N = arr.length;
//         arr = Arrays.copyOf(arr, N + 1);
//         arr[N] = element;
//         return arr;
//     }
// 
//     public static long[] remove(long[] arr, long el) {
//         if (null == arr || arr.length == 0) {
//             return arr;
//         }
//         List<Long> longs = new ArrayList<>(arr.length - 1);
//         for (long l : arr) {
//             if (l != el) {
//                 longs.add(l);
//             }
//         }
//         long[] newArr = new long[longs.size()];
//         for (int i = 0, len = newArr.length; i < len; i++) {
//             newArr[i] = longs.get(i);
//         }
//         return newArr;
//     }
// 
// }


import social.roo.utils.ArrayUtils;
import org.mapdb.DB;
import org.mapdb.DBMaker;
import org.mapdb.Serializer;
import java.util.Arrays;
import java.util.Map;


/**
 * @author biezhi
 * @date 2017/8/2
 */
public class MapDbTest {

    public static void main(String[] args) {

        DB db = DBMaker.fileDB("roo.db").fileMmapEnable().make();

        Map<String, long[]> map = db.treeMap("follow")
                .keySerializer(Serializer.STRING)
                .valueSerializer(Serializer.LONG_ARRAY)
                .counterEnable()
                .createOrOpen();

        map.keySet();

        map.clear();

        map.put("biezhi", new long[]{1});

        long count = map.get("biezhi").length;
        System.out.println("粉丝数：" + count);
        System.out.println(Arrays.toString(map.get("biezhi")));

        map.put("biezhi", ArrayUtils.append(map.get("biezhi"), 22));

        count = map.get("biezhi").length;
        System.out.println("粉丝数：" + count);
        System.out.println(Arrays.toString(map.get("biezhi")));

        long[] values = ArrayUtils.remove(map.get("biezhi"), 22);
        map.put("biezhi", values);

        count = map.get("biezhi").length;
        System.out.println("粉丝数：" + count);
// Path: src/main/java/social/roo/utils/ArrayUtils.java
// @NoArgsConstructor(access = AccessLevel.PRIVATE)
// public class ArrayUtils {
// 
//     public static long[] append(long[] arr, long element) {
//         final int N = arr.length;
//         arr = Arrays.copyOf(arr, N + 1);
//         arr[N] = element;
//         return arr;
//     }
// 
//     public static long[] remove(long[] arr, long el) {
//         if (null == arr || arr.length == 0) {
//             return arr;
//         }
//         List<Long> longs = new ArrayList<>(arr.length - 1);
//         for (long l : arr) {
//             if (l != el) {
//                 longs.add(l);
//             }
//         }
//         long[] newArr = new long[longs.size()];
//         for (int i = 0, len = newArr.length; i < len; i++) {
//             newArr[i] = longs.get(i);
//         }
//         return newArr;
//     }
// 
// }


// Path: src/main/test/java/MapDbTest.java
import social.roo.utils.ArrayUtils;
import org.mapdb.DB;
import org.mapdb.DBMaker;
import org.mapdb.Serializer;
import java.util.Arrays;
import java.util.Map;



/**
 * @author biezhi
 * @date 2017/8/2
 */
public class MapDbTest {

    public static void main(String[] args) {

        DB db = DBMaker.fileDB("roo.db").fileMmapEnable().make();

        Map<String, long[]> map = db.treeMap("follow")
                .keySerializer(Serializer.STRING)
                .valueSerializer(Serializer.LONG_ARRAY)
                .counterEnable()
                .createOrOpen();

        map.keySet();

        map.clear();

        map.put("biezhi", new long[]{1});

        long count = map.get("biezhi").length;
        System.out.println("粉丝数：" + count);
        System.out.println(Arrays.toString(map.get("biezhi")));

        map.put("biezhi", ArrayUtils.append(map.get("biezhi"), 22));

        count = map.get("biezhi").length;
        System.out.println("粉丝数：" + count);
        System.out.println(Arrays.toString(map.get("biezhi")));

        long[] values = ArrayUtils.remove(map.get("biezhi"), 22);
        map.put("biezhi", values);

        count = map.get("biezhi").length;
        System.out.println("粉丝数：" + count);
        System.out.println(Arrays.toString(map.get("biezhi")));