I need a hint how to design a data structure for a table of items with good performance.
The structure must fullfil folowing requirements:
1. table is sorted by specified item attribute and sort order, which may change, but not so often
2. get item by index (used in method for getting the N-th page of items) - very often
3. add new item - very often
4. remove item by ID - very often
Item has about 15 attributes, so the table will have 15 columns.
The attributes have different data type (long, int, string, timestamp, ...).
The table will hold about 1000-10000 items.
The data structure will be implemented in java. I need only theoretical design, not the implementation, but the implementation is appreciated.