Java快速打印List集合数组的方法
一、问题分析
今天开发完excel导入功能,需要处理数据,插入到表中,使用的数据结构是这样的:
List<String[]> list = new ArrayList<>(10);
为了方便调试,我想在控制台(日志)中打印出集合中的元素,由于该元素是数组,与平时的打印方法稍微有点区别,不过差别不大:
核心API:
Arrays.toString();
二、解决方法
使用循环,取出每个list元素,然后利用上述API+强制类型转换:
StringBuffer str = new StringBuffer();
for (int i = 0; i < list.size(); i++) {
str.append(Arrays.toString(((String[])list.get(i))) + "\t");
}
logger.info("[POIReadExcel] 读入的数据:" + str.toString());
三、举一反三
对其它数组或普通集合的元素打印,如果是Object数组,则使用Arrays.toString(obj),示例:
int[] arr = new int[] {2021, 1, 25};
System.out.println(Arrays.toString(arr));
String[] str = new String[] {"年年岁岁花相似", "岁岁年年人不同"};
System.out.println(Arrays.toString(str));
如果是集合,则使用集合转数组API——C.toArray(),其中C表示Set、List、Map,示例:
Set<String> set = new HashSet<String>(16);
set.add("一竿风月");
set.add("一蓑烟雨");
set.add("家在钓台西住");
System.out.println(Arrays.toString(set.toArray()));
List<String> list = new ArrayList<String>(10);
list.add("纤云弄巧");
list.add("飞星传恨");
list.add("银汉迢迢暗度");
System.out.println(Arrays.toString(list.toArray()));
Map<Integer, String> map = new HashMap<Integer, String>(16);
map.put(1, "绿蚁新醅酒");
map.put(2, "红泥小火炉");
map.put(3, "晚来天欲雪");
map.put(4, "能饮一杯无");
System.out.println(Arrays.toString(map.values().toArray()));
写在最后
本次Java打印集合就介绍到这里啦,我是严光君,咱们下文再见~
相关推荐:
创造不易,少侠请留步…… 动起可爱的双手,点个赞再走呗~ ٩(๑>◡<๑)۶