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
11
import
javolution
.
util
.
function
.
Equality
;
12
import
javolution
.
util
.
internal
.
table
.
FastTableImpl
;
13
import
javolution
.
util
.
service
.
SortedTableService
;
14
18
public
class
FastSortedTableImpl
<E>
extends
FastTableImpl
<E> implements
19
SortedTableService
<E> {
20
21
private
static
final
long
serialVersionUID
= 0x600L;
// Version.
22
23
public
FastSortedTableImpl
(
Equality<? super E>
comparator
) {
24
super(
comparator
);
25
}
26
27
@Override
28
public
boolean
add
(E
element
) {
29
add
(
positionOf
(
element
),
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
55
public
SortedTableService<E>
threadSafe
() {
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
core-java
src
main
java
javolution
util
internal
table
sorted
FastSortedTableImpl.java
Generated by
1.8.18