Javolution 6.0.0 java
FastTable.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;
10 
11 import static javolution.lang.Realtime.Limit.CONSTANT;
12 import static javolution.lang.Realtime.Limit.LINEAR;
13 import static javolution.lang.Realtime.Limit.LOG_N;
14 import static javolution.lang.Realtime.Limit.N_LOG_N;
15 import static javolution.lang.Realtime.Limit.N_SQUARE;
16 
17 import java.util.Collection;
18 import java.util.Deque;
19 import java.util.Iterator;
20 import java.util.List;
21 import java.util.ListIterator;
22 import java.util.RandomAccess;
23 
24 import javolution.lang.Realtime;
36 
87 public class FastTable<E> extends FastCollection<E> implements List<E>,
88  Deque<E>, RandomAccess {
89 
90  private static final long serialVersionUID = 0x600L; // Version.
91 
95  private final TableService<E> service;
96 
101  public FastTable() {
102  this(Equalities.STANDARD);
103  }
104 
111  }
112 
117  this.service = service;
118  }
119 
121  // Views.
122  //
123 
124  @Override
125  public FastTable<E> atomic() {
126  return new FastTable<E>(new AtomicTableImpl<E>(service));
127  }
128 
129  @Override
131  return new FastTable<E>(new ReversedTableImpl<E>(service));
132  }
133 
134  @Override
135  public FastTable<E> shared() {
136  return new FastTable<E>(new SharedTableImpl<E>(service));
137  }
138 
139  @Override
142  }
143 
148  public FastTable<E> subTable(int fromIndex, int toIndex) {
149  return new FastTable<E>(
150  new SubTableImpl<E>(service, fromIndex, toIndex));
151  }
152 
154  // Change in time limit behavior.
155  //
156 
157  @Override
158  @Realtime(limit = CONSTANT)
159  public boolean isEmpty() {
160  return service.isEmpty();
161  }
162 
163  @Override
164  @Realtime(limit = CONSTANT)
165  public int size() {
166  return service.size();
167  }
168 
169  @Override
170  @Realtime(limit = CONSTANT)
171  public void clear() {
172  service.clear();
173  }
174 
176  // List Interface.
177  //
178 
180  @Override
181  @Realtime(limit = LOG_N)
182  public void add(int index, E element) {
183  service.add(index, element);
184  }
185 
188  @Override
189  @Realtime(limit = N_LOG_N)
190  public boolean addAll(final int index, Collection<? extends E> elements) {
191  return service.addAll(index, elements);
192  }
193 
195  @Override
196  @Realtime(limit = LOG_N)
197  public E remove(int index) {
198  return service.remove(index);
199  }
200 
202  @Override
203  @Realtime(limit = CONSTANT)
204  public E get(int index) {
205  return service.get(index);
206  }
207 
209  @Override
210  @Realtime(limit = CONSTANT)
211  public E set(int index, E element) {
212  return service.set(index, element);
213  }
214 
217  @Override
218  @Realtime(limit = LINEAR)
219  public int indexOf(Object element) {
220  return service.indexOf(element);
221  }
222 
225  @Override
226  @Realtime(limit = LINEAR)
227  public int lastIndexOf(final Object element) {
228  return service.lastIndexOf(element);
229  }
230 
232  @Override
233  @Realtime(limit = CONSTANT)
234  public ListIterator<E> listIterator() {
235  return service.listIterator();
236  }
237 
240  @Override
241  @Realtime(limit = CONSTANT)
242  public ListIterator<E> listIterator(int index) {
243  return service.listIterator(index);
244  }
245 
247  // Deque Interface.
248  //
249 
251  @Override
252  @Realtime(limit = CONSTANT)
253  public void addFirst(E element) {
254  service.addFirst(element);
255  }
256 
258  @Override
259  @Realtime(limit = CONSTANT)
260  public void addLast(E element) {
261  service.addLast(element);
262  }
263 
265  @Override
266  @Realtime(limit = CONSTANT)
267  public E getFirst() {
268  return service.getFirst();
269  }
270 
272  @Override
273  @Realtime(limit = CONSTANT)
274  public E getLast() {
275  return service.getLast();
276  }
277 
280  @Override
281  @Realtime(limit = CONSTANT)
282  public E peekFirst() {
283  return service.peekFirst();
284  }
285 
288  @Override
289  @Realtime(limit = CONSTANT)
290  public E peekLast() {
291  return service.peekLast();
292  }
293 
296  @Override
297  @Realtime(limit = CONSTANT)
298  public E pollFirst() {
299  return service.pollFirst();
300  }
301 
303  @Override
304  @Realtime(limit = CONSTANT)
305  public E pollLast() {
306  return service.pollLast();
307  }
308 
311  @Override
312  @Realtime(limit = CONSTANT)
313  public E removeFirst() {
314  return service.removeFirst();
315  }
316 
318  @Override
319  @Realtime(limit = CONSTANT)
320  public E removeLast() {
321  return service.removeLast();
322  }
323 
325  @Override
326  @Realtime(limit = CONSTANT)
327  public boolean offerFirst(E e) {
328  return service.offerFirst(e);
329  }
330 
332  @Override
333  @Realtime(limit = CONSTANT)
334  public boolean offerLast(E e) {
335  return service.offerLast(e);
336  }
337 
339  @Override
340  @Realtime(limit = LINEAR)
341  public boolean removeFirstOccurrence(Object o) {
342  return service.removeFirstOccurrence(o);
343  }
344 
346  @Override
347  @Realtime(limit = LINEAR)
348  public boolean removeLastOccurrence(Object o) {
349  return service.removeLastOccurrence(o);
350  }
351 
353  @Override
354  @Realtime(limit = CONSTANT)
355  public boolean offer(E e) {
356  return service.offer(e);
357  }
358 
360  @Override
361  @Realtime(limit = CONSTANT)
362  public E remove() {
363  return service.remove();
364  }
365 
367  @Override
368  @Realtime(limit = CONSTANT)
369  public E poll() {
370  return service.poll();
371  }
372 
374  @Override
375  @Realtime(limit = CONSTANT)
376  public E element() {
377  return service.element();
378  }
379 
381  @Override
382  @Realtime(limit = CONSTANT)
383  public E peek() {
384  return service.peek();
385  }
386 
388  @Override
389  @Realtime(limit = CONSTANT)
390  public void push(E e) {
391  service.push(e);
392  }
393 
395  @Override
396  @Realtime(limit = CONSTANT)
397  public E pop() {
398  return service.pop();
399  }
400 
402  @Override
403  @Realtime(limit = CONSTANT)
404  public Iterator<E> descendingIterator() {
405  return service.descendingIterator();
406  }
407 
409  // Misc.
410  //
411 
415  @Realtime(limit = N_SQUARE)
416  public void sort() {
418  @Override
419  public void accept(TableService<E> table) {
420  QuickSort<E> qs = new QuickSort<E>(table, table.comparator());
421  qs.sort();
422  }
423  });
424  }
425 
426  @Override
427  @Realtime(limit = LINEAR)
428  public FastTable<E> addAll(E... elements) {
429  return (FastTable<E>) super.addAll(elements);
430  }
431 
432  @Override
433  @Realtime(limit = LINEAR)
434  public FastTable<E> addAll(FastCollection<? extends E> that) {
435  return (FastTable<E>) super.addAll(that);
436  }
437 
442  @Override
443  @Deprecated
444  public FastTable<E> subList(int fromIndex, int toIndex) {
445  return subTable(fromIndex, toIndex);
446  }
447 
448  @Override
449  protected TableService<E> service() {
450  return service;
451  }
452 
453 }
javolution.util.FastCollection.comparator
Equality<? super E > comparator()
Definition: FastCollection.java:574
javolution.lang.Realtime.Limit.N_SQUARE
N_SQUARE
Definition: Realtime.java:110
javolution.util.function.Equalities.STANDARD
static final Equality< Object > STANDARD
Definition: Equalities.java:31
javolution.util.FastTable.FastTable
FastTable(TableService< E > service)
Definition: FastTable.java:116
javolution.util.FastTable.offerFirst
boolean offerFirst(E e)
Definition: FastTable.java:327
javolution.lang.Realtime.Limit.N_LOG_N
N_LOG_N
Definition: Realtime.java:104
javolution
javolution.util.internal
javolution.util.FastTable.isEmpty
boolean isEmpty()
Definition: FastTable.java:159
javolution.util.FastTable.offer
boolean offer(E e)
Definition: FastTable.java:355
javolution.util.FastTable.serialVersionUID
static final long serialVersionUID
Definition: FastTable.java:90
javolution.util.service
Definition: BitSetService.java:9
javolution.lang.Realtime.Limit
Definition: Realtime.java:81
javolution.util.FastCollection.update
void update(Consumer<? extends Collection< E >> action)
Definition: FastCollection.java:334
javolution.util.FastTable.getLast
E getLast()
Definition: FastTable.java:274
javolution.util.FastTable.peekLast
E peekLast()
Definition: FastTable.java:290
javolution.util.FastTable.removeFirstOccurrence
boolean removeFirstOccurrence(Object o)
Definition: FastTable.java:341
javolution.util.FastTable.element
E element()
Definition: FastTable.java:376
javolution.util.FastTable.listIterator
ListIterator< E > listIterator()
Definition: FastTable.java:234
javolution.util.FastTable.peek
E peek()
Definition: FastTable.java:383
javolution.lang.Realtime.Limit.LOG_N
LOG_N
Definition: Realtime.java:92
javolution.util.FastTable.FastTable
FastTable()
Definition: FastTable.java:101
javolution.util.FastTable.addAll
boolean addAll(final int index, Collection<? extends E > elements)
Definition: FastTable.java:190
javolution.util.internal.table
Definition: AtomicTableImpl.java:9
javolution.util.FastTable.FastTable
FastTable(Equality<? super E > comparator)
Definition: FastTable.java:109
javolution.util.FastTable.atomic
FastTable< E > atomic()
Definition: FastTable.java:125
javolution.util.FastTable.subTable
FastTable< E > subTable(int fromIndex, int toIndex)
Definition: FastTable.java:148
javolution.util.internal.table.AtomicTableImpl
Definition: AtomicTableImpl.java:23
javolution.util.function.Consumer
Definition: Consumer.java:22
javolution.util.FastTable.addFirst
void addFirst(E element)
Definition: FastTable.java:253
javolution.util.FastTable.add
void add(int index, E element)
Definition: FastTable.java:182
javolution.util.FastTable.subList
FastTable< E > subList(int fromIndex, int toIndex)
Definition: FastTable.java:444
javolution.util.FastTable.reversed
FastTable< E > reversed()
Definition: FastTable.java:130
javolution.util.internal.table.ReversedTableImpl
Definition: ReversedTableImpl.java:17
javolution.util.FastTable.pop
E pop()
Definition: FastTable.java:397
javolution.util.FastTable.removeFirst
E removeFirst()
Definition: FastTable.java:313
javolution.util.FastTable.size
int size()
Definition: FastTable.java:165
javolution.util.function.Equality
Definition: Equality.java:39
javolution.lang
Definition: Configurable.java:9
javolution.util.function.Equalities
Definition: Equalities.java:20
javolution.util.FastTable.get
E get(int index)
Definition: FastTable.java:204
javolution.util.FastTable.peekFirst
E peekFirst()
Definition: FastTable.java:282
javolution.util.internal.table.QuickSort.sort
void sort()
Definition: QuickSort.java:29
javolution.util.internal.table.QuickSort
Definition: QuickSort.java:19
javolution.util.FastTable.shared
FastTable< E > shared()
Definition: FastTable.java:135
javolution.util.FastTable.service
final TableService< E > service
Definition: FastTable.java:95
javolution.util.FastTable.addLast
void addLast(E element)
Definition: FastTable.java:260
javolution.util.function
Definition: Consumer.java:9
javolution.util.internal.table.SubTableImpl
Definition: SubTableImpl.java:18
javolution.util.FastTable.set
E set(int index, E element)
Definition: FastTable.java:211
javolution.lang.Realtime.Limit.LINEAR
LINEAR
Definition: Realtime.java:98
javolution.lang.Realtime.Limit.CONSTANT
CONSTANT
Definition: Realtime.java:86
javolution.lang.Realtime
Definition: Realtime.java:59
javolution.util.service.CollectionService.comparator
Equality<? super E > comparator()
javolution.util.FastTable.clear
void clear()
Definition: FastTable.java:171
javolution.util.FastCollection
Definition: FastCollection.java:166
javolution.util.FastTable.push
void push(E e)
Definition: FastTable.java:390
javolution.util.FastTable.removeLast
E removeLast()
Definition: FastTable.java:320
javolution.util.FastTable.getFirst
E getFirst()
Definition: FastTable.java:267
javolution.util.FastTable.poll
E poll()
Definition: FastTable.java:369
javolution.util.internal.table.UnmodifiableTableImpl
Definition: UnmodifiableTableImpl.java:17
javolution.util.internal.table.FastTableImpl
Definition: FastTableImpl.java:21
javolution.util.service.TableService
Definition: TableService.java:21
javolution.util.FastTable.lastIndexOf
int lastIndexOf(final Object element)
Definition: FastTable.java:227
javolution.util.FastTable.remove
E remove()
Definition: FastTable.java:362
javolution.util.FastTable.service
TableService< E > service()
Definition: FastTable.java:449
javolution.util.FastTable.pollFirst
E pollFirst()
Definition: FastTable.java:298
javolution.util.FastTable.pollLast
E pollLast()
Definition: FastTable.java:305
javolution.util.FastTable.descendingIterator
Iterator< E > descendingIterator()
Definition: FastTable.java:404
javolution.util.FastTable.removeLastOccurrence
boolean removeLastOccurrence(Object o)
Definition: FastTable.java:348
javolution.util.FastTable.sort
void sort()
Definition: FastTable.java:416
javolution.util
Definition: FastBitSet.java:9
javolution.util.FastTable.offerLast
boolean offerLast(E e)
Definition: FastTable.java:334
javolution.util.internal.table.SharedTableImpl
Definition: SharedTableImpl.java:23
javolution.util.FastTable.unmodifiable
FastTable< E > unmodifiable()
Definition: FastTable.java:140
javolution.util.FastTable.indexOf
int indexOf(Object element)
Definition: FastTable.java:219
javolution.util.FastTable
Definition: FastTable.java:88