如何将HashMap中每个Key对应的Values元素逐行打印输出?
问题解决:修改HashMap遍历代码实现指定输出格式
你当前的代码直接打印ArrayList对象时,会调用其默认的toString()方法,输出带方括号和逗号的格式。要实现每个元素单独换行的效果,需要遍历ArrayList中的每个元素并逐个打印,修改后的代码如下:
HashMap<Integer, ArrayList<String>> channels = ... for(HashMap.Entry<Integer, ArrayList<String>> entry : channels.entrySet()) { Integer key = entry.getKey(); // 把Object类型改为ArrayList<String>,方便直接操作列表元素 ArrayList<String> value = entry.getValue(); System.out.println(key); // 遍历ArrayList中的每个字符串,逐个打印 for(String item : value) { System.out.println(item); } // 可选:如果需要在不同key的内容之间空一行,保留此行;不需要则删除 // System.out.println(); }
关键修改说明:
- 修正value类型:将
Object value = entry.getValue();改为ArrayList<String> value = entry.getValue();,避免不必要的类型转换,直接操作列表元素。 - 新增内层遍历:通过循环逐个打印
ArrayList中的每个字符串,替代直接打印整个列表对象的操作(直接打印列表会触发默认格式输出)。 - 空行可选调整:原代码的空行打印可根据需求保留或删除,决定不同key对应的内容之间是否需要分隔空行。
运行修改后的代码,输出格式将符合你的需求:
101 Great British Bake Off Pointless Sherlock 24 Fury vs Wilder F1 Monaco Premier League
内容的提问来源于stack exchange,提问作者Dozziano
相关产品推荐
相关产品推荐

