Javolution 6.0.0 java
FastSortedMapImpl.java
Go to the documentation of this file.
1 /*
2  * Javolution - Java(TM) Solution for Real-Time and Embedded Systems
3  * Copyright (C) 2012 - Javolution (http://javolution.org/)
4  * All rights reserved.
5  *
6  * Permission to use, copy, modify, and distribute this software is
7  * freely granted, provided that this notice is preserved.
8  */
9 package javolution.util.internal.map.sorted;
10 
11 import java.util.Iterator;
12 
15 
19 public class FastSortedMapImpl<K, V> extends SortedMapView<K,V> {
20 
21  private static final long serialVersionUID = 0x600L; // Version.
26 
29  super(null);
30  this.keyComparator = keyComparator;
31  this.valueComparator = valueComparator;
32  }
33 
34  @SuppressWarnings("unchecked")
35  @Override
36  public boolean containsKey(Object key) {
37  return entries.contains(new MapEntryImpl<K,V>((K)key, null));
38  }
39 
40  @Override
41  public K firstKey() {
42  return entries.getFirst().getKey();
43  }
44 
45  @SuppressWarnings("unchecked")
46  @Override
47  public V get(Object key) {
48  int i = entries.indexOf(new MapEntryImpl<K,V>((K)key, null));
49  return (i >= 0) ? entries.get(i).getValue() : null;
50  }
51 
52  @Override
53  public Iterator<Entry<K, V>> iterator() {
54  return entries.iterator();
55  }
56 
57  @Override
59  return keyComparator;
60  }
61 
62  @Override
63  public K lastKey() {
64  return entries.getLast().getKey();
65  }
66 
67  @Override
68  public V put(K key, V value) {
69  MapEntryImpl<K,V> entry = new MapEntryImpl<K,V>(key, value);
70  int i = entries.positionOf(entry);
71  if (i < size()) {
72  Entry<K,V> e = entries.get(i);
73  if (keyComparator().areEqual(key, e.getKey())) { // Entry exists.
74  V previous = e.getValue();
75  e.setValue(value);
76  return previous;
77  }
78  }
79  entries.add(i, entry);
80  return null;
81  }
82 
83  @SuppressWarnings("unchecked")
84  @Override
85  public V remove(Object key) {
86  int i = entries.indexOf(new MapEntryImpl<K,V>((K)key, null));
87  if (i < 0) return null;
88  Entry<K,V> e = entries.get(i);
89  V previous = e.getValue();
90  entries.remove(i);
91  return previous;
92  }
93 
94  @Override
96  return valueComparator;
97  }
98 
99 }
javolution
javolution.util.internal
javolution.util.internal.map.sorted.MapEntryImpl
Definition: sorted/MapEntryImpl.java:17
javolution.util.internal.map.sorted.FastSortedMapImpl.valueComparator
Equality<? super V > valueComparator()
Definition: FastSortedMapImpl.java:95
javolution.util.internal.table
Definition: AtomicTableImpl.java:9
javolution.util.internal.map.sorted.FastSortedMapImpl.firstKey
K firstKey()
Definition: FastSortedMapImpl.java:41
javolution.util.internal.map.sorted.FastSortedMapImpl.serialVersionUID
static final long serialVersionUID
Definition: FastSortedMapImpl.java:21
javolution.util.internal.map.sorted.FastSortedMapImpl
Definition: FastSortedMapImpl.java:19
javolution.util.internal.map.sorted.FastSortedMapImpl.put
V put(K key, V value)
Definition: FastSortedMapImpl.java:68
javolution.util.function.Equality
Definition: Equality.java:39
javolution.util.internal.map.sorted.FastSortedMapImpl.keyComparator
final Equality<? super K > keyComparator
Definition: FastSortedMapImpl.java:22
javolution.util.internal.map.sorted.FastSortedMapImpl.lastKey
K lastKey()
Definition: FastSortedMapImpl.java:63
javolution.util.internal.map.MapView.EntryComparator
Definition: MapView.java:35
javolution.util.internal.map.sorted.FastSortedMapImpl.valueComparator
final Equality<? super V > valueComparator
Definition: FastSortedMapImpl.java:25
javolution.util.internal.table.sorted.FastSortedTableImpl.indexOf
int indexOf(Object element)
Definition: FastSortedTableImpl.java:43
javolution.util.internal.map.sorted.FastSortedMapImpl.entries
FastSortedTableImpl< Entry< K, V > > entries
Definition: FastSortedMapImpl.java:24
javolution.util.internal.table.sorted.FastSortedTableImpl.add
boolean add(E element)
Definition: FastSortedTableImpl.java:28
javolution.util.function
Definition: Consumer.java:9
javolution.util.internal.table.sorted
Definition: AtomicSortedTableImpl.java:9
javolution.util.internal.map.sorted.FastSortedMapImpl.keyComparator
Equality<? super K > keyComparator()
Definition: FastSortedMapImpl.java:58
javolution.util.internal.map.sorted.FastSortedMapImpl.containsKey
boolean containsKey(Object key)
Definition: FastSortedMapImpl.java:36
javolution.util.internal.table.sorted.FastSortedTableImpl.positionOf
int positionOf(E element)
Definition: FastSortedTableImpl.java:50
javolution.util.internal.map.sorted.FastSortedMapImpl.FastSortedMapImpl
FastSortedMapImpl(final Equality<? super K > keyComparator, final Equality<? super V > valueComparator)
Definition: FastSortedMapImpl.java:27
javolution.util.internal.map.sorted.FastSortedMapImpl.iterator
Iterator< Entry< K, V > > iterator()
Definition: FastSortedMapImpl.java:53
javolution.util.internal.map.sorted.SortedMapView
Definition: SortedMapView.java:24
javolution.util
Definition: FastBitSet.java:9
javolution.util.internal.map.MapView.size
int size()
Definition: MapView.java:331
javolution.util.internal.table.sorted.FastSortedTableImpl
Definition: FastSortedTableImpl.java:19