gpt4 book ai didi

java - 给定一个项目列表(不同类型),我如何将它们分开,以便每个组只包含相同类型的项目

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:35:59 24 4
gpt4 key购买 nike

给定一个 List不同类型的项目,我如何高效将它们分开,以便每个组只包含相同类型的项目?

More details

在java中,我有一个List约 10000 项。有 10 种不同的类型 项目。 类型 与值的属性相同。例如,List<Foo> , 然后键入 Foo#getType() .

我需要创建仅包含一种类型项目的 zip 文件。

请给我一些想法。代码是最受欢迎和赞赏的,甚至是伪代码。谢谢。

接受了 Jon Skeet 的想法的代码

List<Foo> list = ...;
ImmutableListMultimap<String, Foo> grouped = MultiMaps.index(list,
new Function<Foo, String>() {
public String apply(Foo input) {
return input.getType();
}
});
for(String type : grouped.keySet()){
//The below list will contains items with the same type.
ImmutableList<Foo> fooListWithSameType = grouped.get(type);
String zipName = getZipName(type);
//Zip the list to a given file name
zipList(fooListWithSameType, zipName);
}

最佳答案

你可以使用 GuavaMultiMap 功能与 MultiMaps.index ,因此使用您的 Foo.getType() 示例,如果它返回一个字符串:

ImmutableListMultimap<String, Foo> grouped = MultiMaps.index(list,
new Function<Foo, String>() {
public String apply(Foo input) {
return input.getType();
}
});

关于java - 给定一个项目列表(不同类型),我如何将它们分开,以便每个组只包含相同类型的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7098560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com