2015-09-08 3 views
-1

Как, как вы думаете, можем ли мы объединить две реализации List, скажем ArrayList (s), без необходимости реализовать тип объекта как сопоставимый или переопределяющий. equals() в любом случае. В принципе, изменение этого класса не допускается. Теперь у объекта есть 4 атрибута - код, имя, (булево), (float). Имя не может использоваться в качестве основы для сравнения, и не обязательно, чтобы код всегда был ненулевым значением. В принципе, либо код не является нулевым, либо логическим является значение true. Теперь, если два элемента в списке конфликтуют, их значения (float) необходимо добавить. Как мы можем выполнить это слияние наиболее оптимизированным образом? Не то, что мы не можем использовать имя как уникальный идентификатор для каждого объекта, но проблема заключается в том, что имена слишком длинны, что означает, что сравнение строк также будет дорогостоящим!Самый оптимизированный способ слияния двух списков объектов без использования компаратора

+0

У вас есть волшебная пылинка, и вы ** верите **? –

+0

Я пробовал использовать hashmap - лучше, чем вложенные циклы. –

+0

Но все-таки слишком много, если условия так усложняют сложность! –

ответ

0

Если вы не можете изменить класс для реализации Comparable, вы можете использовать внешние объекты Comparator.

Смежные вопросы