Допустим, у меня есть объект с одним значимым критерием и, возможно, с некоторыми другими данными.
class MyObject {
int criteria;
String otherData;
}
Я хочу "перемешать" список, такой, что даны данные x, y, такие, что xявляется критерием, а y - другими данными, все подобные x сгруппированы (и отсортированы), но внутри подгруппы они перемешиваются
Моя цель, если выполнять последовательные прогоны, может дать следующие результаты
/ 1s first\|/ 2s next \|/ then 3s \
-----------------------------------
1,a 1,b 1,c 2,d 2,e 2,f 3,g 3,h 3,i // other data is in
1,a 1,c 1,b 2,e 2,d 2,f 3,i 3,h 3,g // a random order
1,c 1,a 1,b 2,d 2,f 2,e 3,h 3,i 3,g // within the subgroup
1,b 1,c 1,c 2,e 2,d 2,f 3,g 3,h 3,i
Мой текущий план заключается в создании сопоставимого, который сравнивает только первые критерии.Тогда моя "случайная сортировка" могла бы просто
list.shuffle(); // get a random ordering
list.sort(); // now group by criteria, leaving the others in a still random state
Мой вопрос, это самый эффективный способ сделать это?Собирается ли это на самом деле достичь моей цели?Есть ли какая-то модель, которая может возникнуть из этого?Если так, то что?