Java 如何有效地找到n个元素和m个类别的最大类别总数
如果我有一个分类项目的Java 如何有效地找到n个元素和m个类别的最大类别总数,java,arraylist,Java,Arraylist,如果我有一个分类项目的ArrayList,例如旅行: Travel(字符串名称、字符串距离、字符串类别) 假设我想知道字符串类别,其中有最大总的距离旅行(而不是具有最大距离旅行)的单个旅行类别) 最初,我的解决方案是为每个类别使用一个支持列表,计算每个列表的旅行距离之和,并使用maxdistanceTraveledsum返回类别名称 但是由于我不知道有多少类别,我如何才能有效地做到这一点呢?使用一个HashMap,其中键是类别,值是该类别的总距离。您可以在列表上循环一次,查找相应的键并累积距离
ArrayList
,例如旅行:
Travel(字符串名称、字符串距离、字符串类别)
假设我想知道字符串类别
,其中有最大总的距离旅行
(而不是具有最大距离旅行
)的单个旅行类别)
最初,我的解决方案是为每个类别使用一个支持列表,计算每个列表的旅行距离之和,并使用maxdistanceTraveled
sum返回类别名称
但是由于我不知道有多少类别,我如何才能有效地做到这一点呢?使用一个HashMap
,其中键是类别,值是该类别的总距离。您可以在列表上循环一次,查找相应的键并累积距离
那么,为什么距离是一根弦呢 如何为每个键分别累积距离以进行比较?@user35736644892效率低下您可以将所有类别添加到另一个列表中,迭代类别列表以查看是否已经存在,并将列表拆分为每个类别的单独列表。但这是一个糟糕的解决方案。