添加到Map时如何将double数组加到Double数组?

时间:2015-02-24 03:46:05

标签: java hashmap boxing

我想填写HashMap<Integer,Double[]>

Map<Integer,Double[]> cached_weights = new HashMap<Integer,Double[]>();

只定期intdouble[],最好的方法是什么?

我看到this question,但它回答了相反的问题。

1 个答案:

答案 0 :(得分:2)

对于键(整数),编译器将自动为您处理,您可以直接传递一个int值。

对于布尔数组,您可以使用Java 8

处理这种方式
Map<Integer, Double[]> foo = new HashMap<Integer, Double[]>();
double[] bar = new double[10];
//As you can see, 1 is passed directly and will be converted to Integer object.
foo.put(1, Arrays.stream(bar)
            .boxed()
            .toArray(Double[]::new));

DoubleStreamboxed方法返回一个由此流的元素组成的Stream,框内为Double。

然后,您会看到一个Stream,您可以轻松调用toArray转换为Double[]