gpt4 book ai didi

java - 使用 toString 方法将 HashMap 转换为 String 时如何覆盖 = 符号?

转载 作者:行者123 更新时间:2023-12-01 06:34:31 24 4
gpt4 key购买 nike

下面是 map 初始化为的代码的一部分:
Map<Integer,Integer> map = new HashMap<>();
我要修改输出的行是

System.out.println("Price and items "+map.toString());
当前输出在哪里
{100=10,200=5}

我要显示
{100:10,200:5}

最佳答案

不要依赖方法toString(),因为它是一个实现细节,可能会从一个Java版本更改为另一个版本,您应该实现自己的方法。

假设您使用Java 8,它可能是:

public static <K, V> String mapToString(Map<K, V> map) {
return map.entrySet()
.stream()
.map(entry -> entry.getKey() + ":" + entry.getValue())
.collect(Collectors.joining(", ", "{", "}"));
}

如果您想要与 AbstractMap#toString() 具有完全相同的实现来检查键或值是否是当前映射,则代码将是:

public static <K, V> String mapToString(Map<K, V> map) {
return map.entrySet()
.stream()
.map(
entry -> (entry.getKey() == map ? "(this Map)" : entry.getKey())
+ ":"
+ (entry.getValue() == map ? "(this Map)" : entry.getValue()))
.collect(Collectors.joining(", ", "{", "}"));
}

关于java - 使用 toString 方法将 HashMap 转换为 String 时如何覆盖 = 符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39896042/

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