У меня есть сущность, которую нужно сгруппировать несколько раз по трем свойствам, которые обеспечивают более точный выбор слева направо. Допустим, у меня есть этот класс:
public class Person {
private String gender;
private String state;
private String age;
}
Каждое свойство может содержать одно и то же значение несколько раз, и я хотел бы сгруппировать их соответствующим образом. Так что в итоге у меня следующая структура данных:
m --> France --> 20 --> Person1
Person2
21 --> Person3
Person4
Germany --> 20 --> Person5
...
Я надеюсь, вы поняли идею. В настоящее время я использую глубоко вложенную Map
конструкцию для достижения этой цели: Map<String, Map<String, Map<String, Person>>>
Затем я проверяю существующие ключи, как в этом ответе: Группировка по имени поля в Java для каждого уровня карты и, наконец, добавление моего объекта в «самую глубокую» карту.
Это должно работать, хотя еще не проверено, но есть ли лучший способ сделать это? Как в лучше читаемо или быстрее исполнение
Поскольку это всего один цикл for
, время выполнения должно быть O (n) , что вполне нормально, но, тем не менее, это не лучшее решение.