Javolution 6.0.0 java
FastSortedTableImpl.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.table.sorted;
10 
14 
18 public class FastSortedTableImpl<E> extends FastTableImpl<E> implements
20 
21  private static final long serialVersionUID = 0x600L; // Version.
22 
24  super(comparator);
25  }
26 
27  @Override
28  public boolean add(E element) {
30  return true;
31  }
32 
33  @Override
34  public boolean addIfAbsent(E element) {
35  int i = positionOf(element);
36  if ((i < size()) && comparator().areEqual(element, get(i))) return false; // Already there.
37  add(i, element);
38  return true;
39  }
40 
41  @SuppressWarnings("unchecked")
42  @Override
43  public int indexOf(Object element) {
44  int i = positionOf((E) element);
45  if (i >= size() || !comparator().areEqual(get(i), (E) element)) return -1;
46  return i;
47  }
48 
49  @Override
50  public int positionOf(E element) {
51  return positionOf(element, 0, size());
52  }
53 
54  @Override
56  return new SharedSortedTableImpl<E>(this);
57  }
58 
59  private int positionOf(E element, int start, int length) {
60  if (length == 0) return start;
61  int half = length >> 1;
62  return (comparator().compare(element, get(start + half)) <= 0) ? positionOf(
63  element, start, half) : positionOf(element, start + half + 1,
64  length - half - 1);
65  }
66 
67 }
javolution
javolution.util.internal
javolution.util.service
Definition: BitSetService.java:9
javolution.util.internal.table
Definition: AtomicTableImpl.java:9
javolution.util.internal.table.sorted.FastSortedTableImpl.FastSortedTableImpl
FastSortedTableImpl(Equality<? super E > comparator)
Definition: FastSortedTableImpl.java:23
javolution.util.internal.table.FastTableImpl.comparator
final Equality<? super E > comparator
Definition: FastTableImpl.java:52
javolution.util.function.Equality
Definition: Equality.java:39
javolution.util.internal.table.sorted.FastSortedTableImpl.threadSafe
SortedTableService< E > threadSafe()
Definition: FastSortedTableImpl.java:55
javolution.util.internal.table.sorted.FastSortedTableImpl.indexOf
int indexOf(Object element)
Definition: FastSortedTableImpl.java:43
javolution.util.internal.table.TableView.element
final E element()
Definition: TableView.java:68
javolution.util.internal.table.sorted.FastSortedTableImpl.addIfAbsent
boolean addIfAbsent(E element)
Definition: FastSortedTableImpl.java:34
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.FastSortedTableImpl.positionOf
int positionOf(E element, int start, int length)
Definition: FastSortedTableImpl.java:59
javolution.util.internal.table.FastTableImpl
Definition: FastTableImpl.java:21
javolution.util.internal.table.sorted.SharedSortedTableImpl
Definition: SharedSortedTableImpl.java:18
javolution.util.service.SortedTableService
Definition: SortedTableService.java:17
javolution.util.internal.table.sorted.FastSortedTableImpl.positionOf
int positionOf(E element)
Definition: FastSortedTableImpl.java:50
javolution.util.internal.table.FastTableImpl.size
transient int size
Definition: FastTableImpl.java:54
javolution.util
Definition: FastBitSet.java:9
javolution.util.internal.table.sorted.FastSortedTableImpl
Definition: FastSortedTableImpl.java:19
javolution.util.internal.table.sorted.FastSortedTableImpl.serialVersionUID
static final long serialVersionUID
Definition: FastSortedTableImpl.java:21