A Гуава Multimap
, вероятно, самое простое решение, но это проще, чем предлагает @Fabian Barney ...
SetMultimap<Revenue, Company> companiesByRevenue =
Multimaps.invertFrom(Multimaps.forMap(results), HashMultimap.create());
// view results as a Multimap, and then invert the key/value relationship to
// find all keys associated with each value
return companiesByRevenue.get(desiredRevenue); // Set<Company>
Тем не менее, этоэто только быстрее, чем стандартный цикл for
, если вам нужно сделать несколько запросов с разными доходами.Если вам нужно только искать компании с одним конкретным значением выручки, то нет более быстрого решения, чем простой цикл for
.