项目作者: TieToGather

项目描述 :
Blitz! — lightning fast primitive collections for Java
高级语言: Java
项目地址: git://github.com/TieToGather/Blitz.git
创建时间: 2017-01-25T23:15:02Z
项目社区:https://github.com/TieToGather/Blitz

开源协议:GNU Lesser General Public License v3.0

下载


Blitz

Blitz! — lightning fast primitive collections for Java

I work with sets of longs every day. SQLite primary keys and many other things are longs. So I’ve written these collections:
MutableLongTreeSet, ImmutableLongTreeSet, MutableLongHashSet.

This project is currently work in progress. I’ll be glad to see your suggestions, so feel free to open feature requests;
API is quite experimental and is a subject to change.

API

MutableLongSet

(implementation: MutableLongHashSet)

  1. public interface PrimitiveSet<E> {
  2. int size();
  3. boolean isEmpty();
  4. String toString();
  5. boolean equals(Object other);
  6. int hashCode();
  7. }
  8. interface LongSet extends PrimitiveSet<Long> {
  9. boolean contains(long element);
  10. boolean containsAll(long[] elements);
  11. boolean containsAll(LongSet elements);
  12. boolean containsAny(long[] elements);
  13. boolean containsAny(LongSet elements);
  14. MutableLongSet copyToMutable();
  15. ImmutableLongSet asImmutable();
  16. long[] copyToArray();
  17. LongIterator iterator();
  18. }
  19. interface MutableLongTreeSet extends LongSet {
  20. boolean add(long element);
  21. boolean addAll(long[] elements);
  22. boolean addAll(LongSet elements);
  23. boolean remove(long element);
  24. boolean removeAll(long[] elements);
  25. boolean removeAll(LongSet elements);
  26. boolean retainAll(long[] elements);
  27. boolean retainAll(LongSet elements);
  28. @Override MutableLongIterator iterator();
  29. int addOrRemove(long element);
  30. }

Kotlin

This library contains operator overloads
and functional-style bulk operations for Kotlin.

  1. // factories
  2. mutableLongSetOf()
  3. immutableLongSetOf()
  4. LongArray.toImmutableLongSet()
  5. LongArray.toMutableLongSet()
  6. // contains() operator bindings
  7. Long/LongArray/LongSet in LongSet
  8. // bulk operations
  9. LongSet.single[OrDefault]()
  10. LongSet.filtered[Not]()
  11. LongSet.filter[Not]To()
  12. LongSet.forEach(), LongSet.onEach()
  13. LongSet.mapToLongs()
  14. LongSet.joinTo[String]()
  15. LongSet.average(), LongSet.sum()
  16. // operations with mutable sets
  17. MutableLongSet += Long/LongArray/LongSet
  18. MutableLongSet -= Long/LongArray/LongSet
  19. // operations with immutable sets
  20. ImmutableLongSet + Long/LongArray/LongSet: ImmutableLongSet
  21. ImmutableLongSet - Long/LongArray/LongSet: ImmutableLongSet

Performance

Insertions are <250 ns, searches are <50 ns.

insertions

searches

Blitz! MutableLongHashSet is very compact:

deep size

Threading

MutableLongHashSets are absolutely not thread-safe.