Сопоставление объектов с указанными свойствами с использованием Java - PullRequest
0 голосов
/ 29 апреля 2011

У меня есть 1 000 000 объектов. Мне нужно сопоставить их с 4 различными свойствами в указанном диапазоне.

  1. Длина (10 метров - 20 метров)
  2. Ширина (12 метров - 18 метров)
  3. Высота (3 метра - 6 метров)
  4. Цвет (КРАСНЫЙ)

Простой цикл for делает это, но, конечно, не самый эффективный способ сделать это Какие типы коллекций я должен искать для реализации? Как я должен был подойти к этой проблеме.

Ответы [ 2 ]

2 голосов
/ 29 апреля 2011

Коллекция должна загружать все данные в память, что ужасно неэффективно для такого большого набора данных. Вы должны использовать базу данных - для этого они и предназначены.

0 голосов
/ 29 апреля 2011

A NavigableSet может работать для вас.Для каждого из свойств вам нужно определить отдельный Comparator .По сути, начните с набора, отсортированного по одному свойству, и получите подмножество, которое соответствует диапазону.Поместите подмножество в другое NavigableSet, отсортированное по Comparator для второго свойства ... повтор.O (NlogN).По крайней мере, это интересно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...