Как поместить двойной массив в двойной массив при добавлении на карту?
Я хочу заполнить HashMap<Integer,Double[]>
Map<Integer,Double[]> cached_weights = new HashMap<Integer,Double[]>();
просто регулярно int
а также double[]
Какой лучший способ сделать это?
Я вижу этот вопрос, но он отвечает на противоположный вопрос.
1 ответ
Решение
Для ключа (Integer) компилятор будет обрабатывать это автоматически для вас, и вы можете напрямую передать значение 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));
boxed
Метод DoubleStream возвращает Stream, состоящий из элементов этого потока, упакованный в Double.
Тогда вы получите поток, на который вы можете легко позвонить toArray
преобразовать в Double[]
,