当前位置: 首页 > 面试题库 >

Java int []数组转换为HashSet

宇文梓
2023-03-14
问题内容

我有一个整数数组

int[] a = {1, 2, 3};

我需要一个类型集:

Set<Integer> s;

如果我执行以下操作:

s = new HashSet(Arrays.asList(a));

它当然认为我的意思是:

List<int[]>

而我的意思是:

List<Integer>

这是因为int是基元。如果我使用过String,那么一切都会起作用:

Set<String> s = new HashSet<String>(
    Arrays.asList(new String[] { "1", "2", "3" }));

如何轻松,正确和简洁地从以下位置进行:

A) int[] a...

B) Integer[] a ...

谢谢!


问题答案:

一些进一步的解释。asList方法具有此签名

public static <T> List<T> asList(T... a)

因此,如果您这样做:

List<Integer> list = Arrays.asList(1, 2, 3, 4)

或这个:

List<Integer> list = Arrays.asList(new Integer[] { 1, 2, 3, 4 })

在这些情况下,我相信Java能够推断出您想要返回一个List,因此它会填充type参数,这意味着它希望方法调用使用Integer参数。由于它能够将值从int自动装到Integer,所以很好。

但是,这不起作用

List<Integer> list = Arrays.asList(new int[] { 1, 2, 3, 4} )

因为包装强制的原始语言(即int []到Integer [])没有内置到语言中(不知道为什么他们不这样做,但他们没有这样做)。

结果,每种原始类型都必须按其自身的重载方法进行处理,这就是commons包所做的事情。即。

public static List<Integer> asList(int i...);


 类似资料:
  • 问题内容: 将PHP数组转换为字符串的最佳方法是什么? 我有一个变量,它是类型数组。 我想将其作为单个字符串存储在数据库中,每个条目之间用分隔: 体育|节日|其他 问题答案: 只需使用

  • 问题内容: 我有一个包含几个整数的数组。我已经向数组添加了一些值,但是现在我需要通过jQuery的方法将此数组发送到页面。如何将其转换为JSON对象进行发送? 问题答案: 向后兼容的脚本:https : //github.com/douglascrockford/JSON- js/blob/master/json2.js 并致电: 注意: JSON对象现在是大多数现代Web浏览器(IE 8及更高版

  • 问题内容: 如何将数组转换为CSV文件? 这是我的数组: 问题答案: 我正在使用以下功能;它是对fputscsv注释中的man条目之一的改编。而且您可能想要展平该数组;不知道如果您传递一个多维的行会发生什么。

  • 问题内容: 我正在尝试将Java中的Javascript数组转换为Java数组。我正在使用javax.script包。我在这里测试了此示例,但是无法识别类型“ NativeArray” 我如何才能识别NativeArray类型? 问题答案: 按照这个答案,看来最好的选择是编写一个JavaScript转换器函数,该函数使用Rhino的Java绑定功能将本机JavaScript数组转换为Java数组。

  • 问题内容: 我有一个想要转换为纯JavaScript数组的json数组: 这是我的json数组: 如何将其转换为普通的javascript数组,如下所示: 问题答案: 已经是JS对象(不是JSON)。但是,您可以在这里: 编辑:将 元素插入数组中的正确位置。谢谢@RoToRa 也许一开始不创建此类对象会更容易。它是如何创建的?

  • 问题内容: 我正在尝试将代表黑白图像的2D Numpy数组转换为3通道OpenCV数组(即RGB图像)。 基于代码示例和文档,我正尝试通过Python执行此操作,例如: 但是,对CvtColor()的调用将引发以下cpp级异常: 我究竟做错了什么? 问题答案: 您的代码可以固定如下: 简短说明: 数据类型不受OpenCV的支持(它支持,,,,,,) 无法处理numpy数组,因此必须将两个参数都转换