我有一个 java 类,我在其中存储一个枚举。(显示在这个问题的底部)在这个枚举中,我有一个名为toCommaSeperatedString()的方法,它返回一个逗号分隔的枚举值字符串。我使用的阅读性能的一些信息,在这个问题后一个StringBuilder在这里。
我将此枚举的值转换为逗号分隔字符串的方式是最有效的方法吗?如果是这样,删除字符串最后一个字符处多余逗号的最有效方法是什么?
例如,我的方法返回123, 456,
但我更喜欢123, 456
. 如果我想返回,PROPERTY1, PROPERTY2
我可以轻松地使用 Apache Commons 库 StringUtils.join(),但是,getValue
当我遍历 String 数组时,我需要通过调用该方法来降低一级。
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(','));
如果需要,可以缓存它;但这可能不会产生巨大的差异。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句