Simple implementation of a generic Bag : Collection « Collections Data Structure « Java






Simple implementation of a generic Bag

    

/*
 * FindBugs - Find Bugs in Java programs
 * Copyright (C) 2003-2007 University of Maryland
 * 
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 * 
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */


import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * Simple implementation of a Bag
 * 
 * @author pugh
 */
public class Bag<E> {
  final Map<E,Integer> map;
  
  public Bag() {
    map = new HashMap<E, Integer>();
  }
  public Bag(Map<E, Integer> map) {
   this.map = map;
  }
  public boolean add(E e) {
    Integer v = map.get(e);
    if (v == null) 
      map.put(e, 1);
    else map.put(e, v+1);
    return true;
  }
  public boolean add(E e, int count) {
    Integer v = map.get(e);
    if (v == null) 
      map.put(e, count);
    else map.put(e, v+count);
    return true;
  }
  public Set<E> keySet() {
    return map.keySet();
  }

  public Collection<Map.Entry<E, Integer>> entrySet() {
    return map.entrySet();
  }
  
  public int getCount(E e) {
      Integer v = map.get(e);
      if (v == null) 
        return 0;
      else return v;
  }

}

   
    
    
    
  








Related examples in the same category

1.Disjoint two collections
2.Whether Collection only contains a single unique object
3.Find a value of the given type in the given Collection
4.Check whether the given Collection contains the given element instance.
5.Return the first element in 'candidates' that is contained in source
6.Return true if any element in 'candidates' is contained in source
7.A utility class for working with attribute and parameter collections used by Spring Web FLow
8.Append, filter and get the size of collections
9.Is collection is empty, and all of its elements are empty
10.Deep clone collection: Returns a new collection containing clones of all the items in the specified collection.
11.Get the difference of two collections
12.The collection related utilities
13.A combination of two collections into a collection
14.Clone an array
15.Clones a map and prefixes the keys in the clone
16.Clones the lhs map and add all things from the rhs map.
17.Dump collection to String