Привет У меня есть простой вопрос. Я собираю данные из API и способ, которым они имеют свою настройку данных, состоит в том, что объекты имеют идентификатор, и я возвращаю его в список.Подсчет списка целых чисел в списки одинаковых целых чисел
Так что получит список объектов, например, так:
List = {Object1, Object2, Object3, ..., ObjectN};
И эти объекты будут иметь родительский идентификатор типа так:
List = {9, 9, 9, 10, 10, 10, 10}
Я хочу Подсписок объектов в списки, содержащих тот же идентификатор родителя. Каким будет достойный алгоритм для решения этой задачи? Так что-то вроде этого:
Object1's parent id is 9
Object2's parent id is 9
Object3's parent id is 9
Object4's parent id is 10
Object5's parent id is 10
Object6's parent id is 10
List<Object> = {Object1, Object2, Object3} // List of all objects with parent id 9
List<Object> = {Object4, Object5, Object6} // List of all objects with parent id 10
Я думал об использовании HashMap
, а также, что хорошая практика? Для масштабирования я считаю, что список объектов никогда не будет составлять ничего даже над сотнями или тысячами, поэтому я не думаю, что скорость обязательно является ОГРОМНОЙ проблемой здесь.
фона: Язык в Java, и объект будет иметь параметры, например, так:
Object: {
parentId:
name:
//etc.
}
Edit: Чем больше я думаю об этом, тем больше я подумываю, используя алгоритм сортировки
ОТВЕТ Спасибо до СамВ:
public HashMap<Integer, List<Object>> createHashMap() {
myHashMap = new HashMap<>();
for (Object object : mObjectList) {
int parentId = object.getParentId();
if (!myHashMap.containsKey(parentId)) {
List<Object> newList = new ArrayList<>();
myHashMap.put(parentId, newList);
}
myHashMap.get(parentId).add(object);
}
return myHashMap;
}
Итак, если у вас есть объекты и объекты имеют parentId, кажется, что используется Ha shMap для сортировки объектов - лучшее решение, где ключи HashMap являются родительским идентификатором.Прокрутите список и инициализируйте новую запись HashMap с родительским идентификатором в качестве ключа и нового списка (если запись еще не существует), а затем добавьте объект. – SamV
В вашем варианте использования крики использования интерфейса карты. Возможно, вам захочется рассмотреть и другие реализации, такие как TreeMap. – KodeSeeker
На каком языке это? И списки не возвращаются вместе, как один список объектов, где объекты имеют свойство parentid? –