gpt4 book ai didi

java - 将枚举值转换为逗号分隔字符串的最有效方法

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

我有一个java类,在其中存储一个枚举。(显示在这个问题的底部)在这个枚举中,我有一个名为toCommaSeperatedString()的方法,它返回一个逗号分隔的字符串枚举值。在阅读了这个问题 here 中的一些有关性能的信息后,我正在使用 StringBuilder 。

我将此枚举的值转换为逗号分隔字符串的方法是最有效的方法吗?如果是,那么删除字符串最后一个字符处的额外逗号的最有效方法是什么?

例如,我的方法返回 123, 456,,但我更喜欢 123, 456。如果我想返回 PROPERTY1, PROPERTY2 我可以轻松使用 Apache Commons 库 StringUtils.join(),但是,我需要通过调用 getValue 方法来降低一级我正在遍历字符串数组。

public class TypeEnum {
public enum validTypes {
PROPERTY1("123"),
PROPERTY2("456");

private String value;

validTypes(String value) {
this.value = value;
}

public String getValue() {
return value;
}

public static boolean contains(String type) {
for (validTypes msgType : validTypes.values()) {
if (msgType.value.equals(type)) {
return true;
}
}
return false;
}

public static String toCommaSeperatedString() {
StringBuilder commaSeperatedValidMsgTypes = new StringBuilder();
for(validTypes msgType : validTypes.values()) {
commaSeperatedValidMsgTypes.append(msgType.getValue() + ", ");
}
return commaSeperatedValidMsgTypes.toString();
}
}
}

最佳答案

我不会太担心效率。这样做很简单,而且速度会很快,只要你不以疯狂的方式做。如果这是您代码中最重要的性能瓶颈,我会感到惊讶。

我会这样做:

return Arrays.stream(TypeEnum.values())
.map(t -> t.value)
.collect(Collectors.joining(','));

如果需要的话可以缓存它;但这可能不会产生巨大的影响。

关于java - 将枚举值转换为逗号分隔字符串的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45621918/

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