-
Notifications
You must be signed in to change notification settings - Fork 33
howto sort data
Erich Seifert edited this page Mar 14, 2016
·
1 revision
The class de.erichseifert.gral.data.DataTable offers a sort method which can be used to sort the stored data by one or more columns.
Given the following data:
DatTable data = new DataTable(Integer.class, Double.class, Double.class);
data.add(4, 1.0, 0.0);
data.add(3, 1.0, 1.0);
data.add(2, 1.0, 2.0);
data.add(1, 3.0, 3.0);which produces the following data structure:
| col 0 | col 1 | col 2 |
|---|---|---|
| 4 | 1.0 | 0.0 |
| 3 | 1.0 | 1.0 |
| 2 | 1.0 | 2.0 |
| 1 | 3.0 | 3.0 |
Sorting the data by the first column in ascending order
data.sort(new Ascending(0));changes the data to
| col 0 | col 1 | col 2 |
|---|---|---|
| 1 | 3.0 | 3.0 |
| 2 | 1.0 | 2.0 |
| 3 | 1.0 | 1.0 |
| 4 | 1.0 | 0.0 |
Sorting the data by the second column in descending order
data.sort(new Descending(1));changes the data to
| col 0 | col 1 | col 2 |
|---|---|---|
| 1 | 3.0 | 3.0 |
| 4 | 1.0 | 0.0 |
| 3 | 1.0 | 1.0 |
| 2 | 1.0 | 2.0 |
Sorting the data by the second column in descending order and on equality sorting the data by the first column in ascending order.
data.sort(new Descending(1), new Ascending(0));changes the data to
| col 0 | col 1 | col 2 |
|---|---|---|
| 1 | 3.0 | 3.0 |
| 2 | 1.0 | 2.0 |
| 3 | 1.0 | 1.0 |
| 4 | 1.0 | 0.0 |
Sorting the data by the second column in descending order and on equality sorting the data by the third column in ascending order.
data.sort(new Descending(1), new Ascending(2));changes the data to
| col 0 | col 1 | col 2 |
|---|---|---|
| 1 | 3.0 | 3.0 |
| 4 | 1.0 | 0.0 |
| 3 | 1.0 | 1.0 |
| 2 | 1.0 | 2.0 |