Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何有效地找到n个元素和m个类别的最大类别总数_Java_Arraylist - Fatal编程技术网

Java 如何有效地找到n个元素和m个类别的最大类别总数

Java 如何有效地找到n个元素和m个类别的最大类别总数,java,arraylist,Java,Arraylist,如果我有一个分类项目的ArrayList,例如旅行: Travel(字符串名称、字符串距离、字符串类别) 假设我想知道字符串类别,其中有最大总的距离旅行(而不是具有最大距离旅行)的单个旅行类别) 最初,我的解决方案是为每个类别使用一个支持列表,计算每个列表的旅行距离之和,并使用maxdistanceTraveledsum返回类别名称 但是由于我不知道有多少类别,我如何才能有效地做到这一点呢?使用一个HashMap,其中键是类别,值是该类别的总距离。您可以在列表上循环一次,查找相应的键并累积距离

如果我有一个分类项目的
ArrayList
,例如旅行:

Travel(字符串名称、字符串距离、字符串类别)

假设我想知道
字符串类别
,其中有最大总的
距离旅行
(而不是具有最大
距离旅行
)的单个旅行类别)

最初,我的解决方案是为每个类别使用一个支持列表,计算每个列表的旅行距离之和,并使用max
distanceTraveled
sum返回类别名称

但是由于我不知道有多少类别,我如何才能有效地做到这一点呢?

使用一个
HashMap
,其中键是类别,值是该类别的总距离。您可以在列表上循环一次,查找相应的键并累积距离


那么,为什么距离是一根弦呢

如何为每个键分别累积距离以进行比较?@user35736644892效率低下您可以将所有类别添加到另一个列表中,迭代类别列表以查看是否已经存在,并将列表拆分为每个类别的单独列表。但这是一个糟糕的解决方案。