You need to enable JavaScript to run this app. Java ArrayList去重后如何移除输出逗号、实现空格分隔打印
优惠活动
大模型
产品
解决方案
定价
更多

Java ArrayList去重后如何移除输出逗号、实现空格分隔打印

Java Exercise11_13 输出格式适配问题

题目要求

  • 需按给定方法头编写去重逻辑:public static void removeDuplicate(ArrayList<Integer> list),功能为移除Integer类型ArrayList中的重复元素
  • 配套测试程序需实现:提示用户输入10个整数存入列表,输出按输入顺序排列的去重整数序列,要求元素间恰好使用一个空格分隔

当前实现进度

  • 核心去重逻辑已完成:通过临时ArrayList遍历原列表,仅将未在临时列表中出现过的元素存入临时列表,最后清空原列表并将临时列表元素全部回填,去重功能本身运行正常

遇到的问题

  • 直接打印ArrayList对象时,输出默认携带方括号、元素间逗号分隔的格式,当前实际运行输出为[78, 99, 54, 63, 56, 14, 67],不符合题目要求
  • 已尝试的无效调整操作:
    • 使用replaceAll和removeAll方法调整输出格式
    • 将list与空字符串拼接修改输出内容
    • 以上操作均未生效,输出依然保留多余的逗号与方括号,需要调整实现让输出仅保留数字间的单个空格

问题原因

之前的调整方式全部无效,核心原因有两点:一是你调用的replaceAll、removeAll方法本质是对列表内存储的元素本身做操作,不是修改对象打印时的拼接规则;二是直接打印ArrayList时,JVM会自动调用其默认的toString()方法,按照「[元素1, 元素2, 元素3]」的格式拼接字符串,你后续的字符串拼接操作没有从根源修改输出的拼接逻辑,自然达不到格式要求。

可直接落地的调整方案

注:你之前写的removeDuplicate方法逻辑完全符合题目要求,不需要做任何修改,仅需调整最终的输出环节即可。

  • 基础实现(兼容所有Java版本):
    // 去重完成后执行输出逻辑
    StringBuilder output = new StringBuilder();
    for (int i = 0; i < list.size(); i++) {
        // 非第一个元素前追加单个空格,保证元素间仅一个空格分隔
        if (i != 0) {
            output.append(" ");
        }
        output.append(list.get(i));
    }
    System.out.println(output);
    
  • 简化实现(Java 8及以上版本可用):
    import java.util.stream.Collectors;
    // ...省略其他业务逻辑
    String output = list.stream()
            .map(String::valueOf)
            .collect(Collectors.joining(" "));
    System.out.println(output);
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 02:24:08