Advertisement
Guest User

Untitled

a guest
Oct 31st, 2014
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.75 KB | None | 0 0
  1. class RandomSet {
  2.    
  3.     private Map<Object, Integer> indexes = new HashMap<Object, Integer>();
  4.     private List<Object> list = new ArrayList<Object>();
  5.     private SecureRandom random = new SecureRandom();
  6.    
  7.     public void add(Object obj) {
  8.         list.add(obj);
  9.         indexes.put(obj, list.size() -1);
  10.     }
  11.    
  12.     public void remove(Object obj) {
  13.         final int index = indexes.get(obj);
  14.         indexes.remove(obj);
  15.        
  16.         final Object last = list.get(list.size() - 1);
  17.         list.set(index, last);
  18.         list.remove(list.size() -1);
  19.        
  20.         indexes.put(last, index);
  21.     }
  22.    
  23.     public Object random() {
  24.         final int index = random.nextInt(list.size());
  25.         return list.get(index);
  26.     }
  27. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement