I'm writing an application in Java and would like to store the data. The data in question will be a certain number (may be a few 1000s) of vectors, and each vector would be of different size, but the bigger ones may be about 100000 elements long. A vector is composed of integers, doubles or strings (UTF-8).

I need to:

  1. Read a few of those vectors as fast as possible when opening the application
  2. Create new vectors as fast as possible
  3. Modify the elements of a vector as fast as possible
  4. Add or delete elements to a vector (anywhere on the vector) as fast as possible

So I would like a library to help me with that. I've already looked at:

  • HDF5: while it seems to be what I want, I hated the APIs, everything seems to be overly complex, the documentation is not very good, the Java bindings seem to be a second class citizen and UTF-8 support seems not to be the default. In particular I am very afraid of HDF5 Java limitations.

  • Java serialization: does not seem to have any way of modifying other than rewriting.

  • Embedded databases: the ones I saw seemed to use SQL for which I have no use and would greatly complicate my very simple operations.

  • By “vector”, do you mean the Vector? I ask because that is an old class, not generally used since the advent of the Java Collections framework. Or do you mean just an array-like collection of values? Mar 4 '16 at 4:21
  • Is this for single-user single-threaded usage? Mar 4 '16 at 4:28
  • By vector I mean an array-like collection of values Mar 8 '16 at 22:14
  • it would be single use single thread Mar 8 '16 at 22:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.