public static <E> PBag<E> bag() { return HashTreePBag.empty(); }
public static <E> PBag<E> bag() { return HashTreePBag.empty(); }
/** * @param <E> * @param e * @return empty().plus(e) */ public static <E> MapPBag<E> singleton(final E e) { return HashTreePBag.<E>empty().plus(e); }
/** * @param <E> * @param e * @return empty().plus(e) */ public static <E> MapPBag<E> singleton(final E e) { return HashTreePBag.<E>empty().plus(e); }
/** * @param <E> * @param list * @return empty().plusAll(map) */ public static <E> MapPBag<E> from(final Collection<? extends E> list) { return HashTreePBag.<E>empty().plusAll(list); } }
/** * @param <E> * @param list * @return empty().plusAll(map) */ public static <E> MapPBag<E> from(final Collection<? extends E> list) { return HashTreePBag.<E>empty().plusAll(list); } }
@Override protected MapPBag<Object> createEmptyCollection() { return HashTreePBag.empty(); } }
public static<T> PBag<T> empty(){ return HashTreePBag .empty(); } public static<T> PBag<T> singleton(T value){
public static <E> PBag<E> bag() { return HashTreePBag.empty(); }
public static <E> PBag<E> bag() { return HashTreePBag.empty(); }
/** * @param <E> * @param e * @return empty().plus(e) */ public static <E> MapPBag<E> singleton(final E e) { return HashTreePBag.<E>empty().plus(e); }
/** * @param <E> * @param e * @return empty().plus(e) */ public static <E> MapPBag<E> singleton(final E e) { return HashTreePBag.<E>empty().plus(e); }
/** * @param <E> * @param list * @return empty().plusAll(map) */ public static <E> MapPBag<E> from(final Collection<? extends E> list) { return HashTreePBag.<E>empty().plusAll(list); } }
/** * @param <E> * @param list * @return empty().plusAll(map) */ public static <E> MapPBag<E> from(final Collection<? extends E> list) { return HashTreePBag.<E>empty().plusAll(list); } }
public static<T> PBagX<T> empty(){ return new PBagXImpl<>(HashTreePBag .empty()); } public static<T> PBagX<T> singleton(T value){
public static <T> Monoid<PBag<T>> toPBag() { return Monoid.<PBag<T>>of(HashTreePBag.empty(), (PBag<T> a) -> b -> a.plusAll(b), (T x) -> HashTreePBag.singleton(x)); } public static <T> Monoid<PSet<T>> toPSet() {
/** * <pre> * {@code * PBag<Integer> q = Reducers.<Integer>toPBag() .mapReduce(Stream.of(1,2,3,4)); * * } * </pre> * @return Reducer for PBag */ public static <T> Reducer<PBag<T>> toPBag() { return Reducer.<PBag<T>> of(HashTreePBag.empty(), (final PBag<T> a) -> b -> a.plusAll(b), (final T x) -> HashTreePBag.singleton(x)); } /**
public void testSerializationForMapPBag() { final MapPBag<String> initialMapPBag = HashTreePBag.<String> empty() .plus(ELEMENT1) .plus(ELEMENT2) .plus(ELEMENT1) .plus(ELEMENT2) .plus(ELEMENT1) .plus(ELEMENT3); final byte[] serializedMapPBag = serializeToByteArray(initialMapPBag); assertNotNull(serializedMapPBag); assertTrue(serializedMapPBag.length > 0); @SuppressWarnings("unchecked") final MapPBag<String> deserializedMapPBag = deserializeFromByteArray(serializedMapPBag, MapPBag.class); assertNotNull(deserializedMapPBag); assertEquals(6, deserializedMapPBag.size()); assertNotSame(initialMapPBag, deserializedMapPBag); assertTrue(deserializedMapPBag.containsAll(Arrays.asList(ELEMENT1, ELEMENT2, ELEMENT3))); assertFalse(deserializedMapPBag.minus(ELEMENT1).minus(ELEMENT1).minus(ELEMENT1).contains(ELEMENT1)); assertFalse(deserializedMapPBag.minus(ELEMENT2).minus(ELEMENT2).contains(ELEMENT2)); assertFalse(deserializedMapPBag.minus(ELEMENT3).contains(ELEMENT3)); }