java - 数组给出错误的输出?

admin2025-09-08 00:48:164218

首先,您的代码中存在错误。您应该在 for 循环范围之外初始化 HashSet 和 int[] 数组的实例,以便在该循环范围之外访问它。

如果你做对了,那么你的问题的答案是,当你打印一个数组 Object.toString() 方法时会被调用。正如您在问题中提到的“随机字符串”,它会返回一个hashCode值。另一方面,HashSet 覆盖 toString() 方法并返回一个字符串表示。

如文档中所述 -

返回此集合的字符串表示形式。字符串表示由集合元素的列表组成,按其迭代器返回的顺序排列,用方括号 ("[]") 括起来。相邻元素由字符“、”(逗号和空格)分隔。通过 String.valueOf(Object) 将元素转换为字符串。

因此,要在代码中打印整数数组的字符串表示形式,可以使用 util 包中的 Arrays 类。代码将是这样的-

System.out.println(Arrays.toString(arr));

如果你有一个多维数组,那么你可以使用以下 -

System.out.println(Arrays.deepToString(arr));