Scala DataTable by Martin Cooper.
From the webpage:
Scala DataTable is a lightweight, in-memory table structure written in Scala. The implementation is entirely immutable. Modifying any part of the table, adding or removing columns, rows, or individual field values will create and return a new structure, leaving the old one completely untouched. This is quite efficient due to structural sharing.
- Fully immutable implementation.
- All changes use structural sharing for performance.
- Table columns can be added, inserted, updated and removed.
- Rows can be added, inserted, updated and removed.
- Individual cell values can be updated.
- Any inserts, updates or deletes keep the original structure and data completely unchanged.
- Internal type checks and bounds checks to ensure data integrity.
- RowData object allowing typed or untyped data access.
- Full filtering and searching on row data.
- Single and multi column quick sorting.
- DataViews to store sets of filtered / sorted data.
If you are curious about immutable data structures and want to start with something familiar, this is your day!
See the Github page for example code and other details.