gpt4 book ai didi

java - Joiner 没有正确订购?

转载 作者:行者123 更新时间:2023-11-29 03:25:28 28 4
gpt4 key购买 nike

我有以下代码来运行 Joiner 来连接键。但是,它们出现的顺序不正确。

    BiMap<String, String> whatever= HashBiMap.create();
{
whatever.put("First group", "f1");
whatever.put("This should really be second", "f2");
whatever.put("3rd group", "f3");
}
String groups = Joiner.on('|').join(whatever.keySet());
System.out.println(groups);

输出:

This should really be second|3rd group|First group

预期输出:

First group|This should really be second|3rd group

我如何让它们按顺序显示,因为考虑到它们将在 boolean 表达式中进行评估很重要?

最佳答案

HashBiMap.keySet 返回一个无序数据结构的集合。因此,您的加入通话可以按任何顺序进行。

正如 Louis 所建议的,当您使用 Guava 库时,您可以使用可用的方法对集合进行排序,使用:Ordering.natural().sortedCopy(Collection collection)

那么最后一行将是:

Collection<String> unsorted = whatever.values();
List<String> sorted = Ordering.natural().sortedCopy(unsorted)
String groups = Joiner.on('|').join(sorted);
System.out.println(groups);

这只会按字母顺序排序(我认为)。

如果不可变性是可以接受的,您可以使用 ImmutableBiMap,它会保留插入顺序。否则,我建议创建一个自己对数据进行排序的方法(通过扩展 BiMap 或静态方法)。

关于java - Joiner 没有正确订购?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21295344/

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