public class CompactHeapStringList
extends java.lang.Object
implements java.util.List<java.lang.String>
List<String> that stores all contents in a single char[], to avoid the GC load for a large number of String
objects.
Some restrictions to be aware of with the current implementation:
- The list is intended to be write-once (append only), except for clear() operations. That is: new Strings can be added
at the end, but they cannot be replaced or removed.
- There is a limit of a maximum of Integer.MAX_VALUE/2 = 1073741823 Strings
- There is a limit of the maximum total characters of Integer.MAX_VALUE (i.e., 2147483647 chars). This corresponds
to a maximum of approximately 4GB of Strings.
| Modifier and Type | Field and Description |
|---|---|
static int |
DEFAULT_INTEGER_REALLOCATION_BLOCK_SIZE_BYTES |
static int |
DEFAULT_REALLOCATION_BLOCK_SIZE_BYTES |
| Constructor and Description |
|---|
CompactHeapStringList() |
CompactHeapStringList(int reallocationBlockSizeBytes,
int intReallocationBlockSizeBytes) |
| Modifier and Type | Method and Description |
|---|---|
void |
add(int index,
java.lang.String element) |
boolean |
add(java.lang.String s) |
boolean |
addAll(java.util.Collection<? extends java.lang.String> c) |
boolean |
addAll(int index,
java.util.Collection<? extends java.lang.String> c) |
void |
clear() |
boolean |
contains(java.lang.Object o) |
boolean |
containsAll(java.util.Collection<?> c) |
boolean |
equals(java.lang.Object o) |
java.lang.String |
get(int index) |
int |
indexOf(java.lang.Object o) |
boolean |
isEmpty() |
java.util.Iterator<java.lang.String> |
iterator() |
int |
lastIndexOf(java.lang.Object o) |
java.util.ListIterator<java.lang.String> |
listIterator() |
java.util.ListIterator<java.lang.String> |
listIterator(int index) |
java.lang.String |
remove(int index) |
boolean |
remove(java.lang.Object o) |
boolean |
removeAll(java.util.Collection<?> c) |
boolean |
retainAll(java.util.Collection<?> c) |
java.lang.String |
set(int index,
java.lang.String element) |
int |
size() |
java.util.List<java.lang.String> |
subList(int fromIndex,
int toIndex) |
java.lang.String[] |
toArray() |
<T> T[] |
toArray(T[] a) |
public static final int DEFAULT_REALLOCATION_BLOCK_SIZE_BYTES
public static final int DEFAULT_INTEGER_REALLOCATION_BLOCK_SIZE_BYTES
public CompactHeapStringList()
public CompactHeapStringList(int reallocationBlockSizeBytes,
int intReallocationBlockSizeBytes)
reallocationBlockSizeBytes - Number of bytes by which to increase the char[], when allocating a new storage arrayintReallocationBlockSizeBytes - Number of bytes by which to increase the int[], when allocating a new storage arraypublic int size()
size in interface java.util.Collection<java.lang.String>size in interface java.util.List<java.lang.String>public boolean isEmpty()
isEmpty in interface java.util.Collection<java.lang.String>isEmpty in interface java.util.List<java.lang.String>public boolean contains(java.lang.Object o)
contains in interface java.util.Collection<java.lang.String>contains in interface java.util.List<java.lang.String>public java.util.Iterator<java.lang.String> iterator()
iterator in interface java.lang.Iterable<java.lang.String>iterator in interface java.util.Collection<java.lang.String>iterator in interface java.util.List<java.lang.String>public java.lang.String[] toArray()
toArray in interface java.util.Collection<java.lang.String>toArray in interface java.util.List<java.lang.String>public <T> T[] toArray(T[] a)
toArray in interface java.util.Collection<java.lang.String>toArray in interface java.util.List<java.lang.String>public boolean add(java.lang.String s)
add in interface java.util.Collection<java.lang.String>add in interface java.util.List<java.lang.String>public boolean remove(java.lang.Object o)
remove in interface java.util.Collection<java.lang.String>remove in interface java.util.List<java.lang.String>public boolean containsAll(java.util.Collection<?> c)
containsAll in interface java.util.Collection<java.lang.String>containsAll in interface java.util.List<java.lang.String>public boolean addAll(java.util.Collection<? extends java.lang.String> c)
addAll in interface java.util.Collection<java.lang.String>addAll in interface java.util.List<java.lang.String>public boolean addAll(int index,
java.util.Collection<? extends java.lang.String> c)
addAll in interface java.util.List<java.lang.String>public boolean removeAll(java.util.Collection<?> c)
removeAll in interface java.util.Collection<java.lang.String>removeAll in interface java.util.List<java.lang.String>public boolean retainAll(java.util.Collection<?> c)
retainAll in interface java.util.Collection<java.lang.String>retainAll in interface java.util.List<java.lang.String>public void clear()
clear in interface java.util.Collection<java.lang.String>clear in interface java.util.List<java.lang.String>public java.lang.String get(int index)
get in interface java.util.List<java.lang.String>public java.lang.String set(int index,
java.lang.String element)
set in interface java.util.List<java.lang.String>public void add(int index,
java.lang.String element)
add in interface java.util.List<java.lang.String>public java.lang.String remove(int index)
remove in interface java.util.List<java.lang.String>public int indexOf(java.lang.Object o)
indexOf in interface java.util.List<java.lang.String>public int lastIndexOf(java.lang.Object o)
lastIndexOf in interface java.util.List<java.lang.String>public java.util.ListIterator<java.lang.String> listIterator()
listIterator in interface java.util.List<java.lang.String>public java.util.ListIterator<java.lang.String> listIterator(int index)
listIterator in interface java.util.List<java.lang.String>public java.util.List<java.lang.String> subList(int fromIndex,
int toIndex)
subList in interface java.util.List<java.lang.String>public boolean equals(java.lang.Object o)
equals in interface java.util.Collection<java.lang.String>equals in interface java.util.List<java.lang.String>equals in class java.lang.ObjectCopyright © 2019. All rights reserved.