问题
I found this code on SO to map strings to ints
Arrays.stream(myarray).mapToInt(Integer::parseInt).toArray();
But how do I make it map to Integer type not the primitive int?
I tried switching from Integer.parseInt
to Integer.valueOf
, but it seems that the mapToInt()
method forces the primitive type.
I have an ArrayList of arrays of Integers, so I cannot use primitive ints.
回答1:
Since String
and Integer
are both reference types you can simply call Stream::map
to transform your array.
Integer[] boxed = Stream.of(myarray).map(Integer::valueOf).toArray(Integer[]::new);
回答2:
you can use the Stream<Integer> boxed() method.
Stream<Integer> boxed() returns a Stream consisting of the elements of this stream, each boxed to an Integer.
ArrayList<Integer[]> resultSet = new ArrayList<>();
resultSet.add(Arrays.stream(myarray).mapToInt(Integer::parseInt).boxed().toArray(Integer[]::new));
来源:https://stackoverflow.com/questions/43877296/java-map-an-array-of-strings-to-an-array-of-integers