@SuppressWarnings("unchecked") private int count(final Object o) { if(!contains(o)) return 0; // otherwise o must be an E: return map.get((E)o); }
public MapPBag<E> plusAll(final Collection<? extends E> list) { MapPBag<E> bag = this; for(E e : list) bag = bag.plus(e); return bag; }
@SuppressWarnings("unchecked") @Override public boolean equals(Object that) { if(!(that instanceof PBag)) return false; if(!(that instanceof MapPBag)) { // make that into a MapPBag: // TODO this is INEFFICIENT MapPBag<Object> empty = (MapPBag<Object>)this.minusAll(this); that = empty.plusAll((PBag<?>)that); } return this.map.equals( ((MapPBag<?>)that).map ); }
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)); }
/** * @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 map * @return a PBag backed by an empty version of map, i.e. by map.minusAll(map.keySet()) */ public static <E> MapPBag<E> empty(final PMap<E,Integer> map) { return new MapPBag<E>(map.minusAll(map.keySet()), 0); }
@SuppressWarnings("unchecked") @Override public boolean equals(Object that) { if(!(that instanceof PBag)) return false; if(!(that instanceof MapPBag)) { // make that into a MapPBag: // TODO this is INEFFICIENT MapPBag<Object> empty = (MapPBag<Object>)this.minusAll(this); that = empty.plusAll((PBag<?>)that); } return this.map.equals( ((MapPBag<?>)that).map ); }
/** * @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 map * @return a PBag backed by an empty version of map, i.e. by map.minusAll(map.keySet()) */ public static <E> MapPBag<E> empty(final PMap<E,Integer> map) { return new MapPBag<E>(map.minusAll(map.keySet()), 0); }
@SuppressWarnings("unchecked") @Override public boolean equals(Object that) { if(!(that instanceof PBag)) return false; if(!(that instanceof MapPBag)) { // make that into a MapPBag: // TODO this is INEFFICIENT MapPBag<Object> empty = (MapPBag<Object>)this.minusAll(this); that = empty.plusAll((PBag<?>)that); } return this.map.equals( ((MapPBag<?>)that).map ); }
public MapPBag<E> plusAll(final Collection<? extends E> list) { MapPBag<E> bag = this; for(E e : list) bag = bag.plus(e); return bag; }
@SuppressWarnings("unchecked") private int count(final Object o) { if(!contains(o)) return 0; // otherwise o must be an E: return map.get((E)o); }
/** * @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 map * @return a PBag backed by an empty version of map, i.e. by map.minusAll(map.keySet()) */ public static <E> MapPBag<E> empty(final PMap<E, Integer> map) { return new MapPBag<E>(map.minusAll(map.keySet()), 0); }