You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java自定义ArrayList重写toString()方法如何去除末尾多余逗号

自定义ArrayList toString方法末尾多余逗号修正方案

问题原因

当前实现遍历元素时,给所有元素(包括最后一个)的尾部都拼接了", "分隔符,导致最终输出末尾多出冗余逗号,不符合Java标准集合的输出规范。
原有错误输出示例:

[Bananas, Apples, Pineapple, Peaches, Pears, Plum, ]

可用修正方案

方案1:遍历中判断索引位置追加分隔符

逻辑简单直观:只有当前元素不是最后一个元素时,才在元素后拼接分隔符。
修正后的toString()代码:

@Override
public String toString() {  
    StringBuilder sb = new StringBuilder();
    sb.append("[");
    // 处理存储数组为null、集合为空的场景
    if (store == null || size == 0) {
        return sb.append("]").toString();
    }
    for (int i = 0; i < size; i++) {
        sb.append(store[i]);
        // 非最后一个元素才追加分隔符
        if (i != size - 1) {
            sb.append(", ");
        }
    }
    sb.append("]");
    return sb.toString();
}

方案2:参照JDK原生集合实现逻辑

JDK中AbstractCollection的toString采用先拼接第一个元素,后续元素前补分隔符的写法,避免每次循环都做索引判断,逻辑更简洁:

@Override
public String toString() {
    // 空场景直接返回空集合格式
    if (store == null || size == 0) {
        return "[]";
    }
    StringBuilder sb = new StringBuilder();
    sb.append("[");
    // 先拼接第一个元素
    sb.append(store[0]);
    // 从第二个元素开始遍历,每个元素前拼接分隔符
    for (int i = 1; i < size; i++) {
        sb.append(", ").append(store[i]);
    }
    sb.append("]");
    return sb.toString();
}

修正后运行效果

运行测试代码,输出结果完全匹配Java标准集合格式:

  • 新增6个水果后的输出:[Bananas, Apples, Pineapple, Peaches, Pears, Plum]
  • 调用clear清空集合后的输出:[]

内容的提问来源于stack exchange,提问作者Orest Dymarchuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 21:18:56