每日一练64——Java初学者遗忘的Map(8kyu)
2018-08-02 本文已影响0人
砾桫_Yvan
题目
给定一个整数数组,返回一个新数组,每个值加倍。
例如:
[1, 2, 3] --> [2, 4, 6]
对于初学者,尝试使用该map
方法 - 它非常方便,更应该让人知道有多好。
测试用例:
import org.junit.Test;
import static org.junit.Assert.assertArrayEquals;
import org.junit.runners.JUnit4;
public class MapTests {
@Test
public void sampleTests() {
assertArrayEquals(new int[] {2, 4, 6}, Maps.map(new int[] {1, 2, 3}));
assertArrayEquals(new int[] {8, 2, 2, 2, 8}, Maps.map(new int[] {4, 1, 1, 1, 4}));
assertArrayEquals(new int[] {2, 2, 2, 2, 2, 2}, Maps.map(new int[] {1, 1, 1, 1, 1, 1}));
}
}
解题
My:
public class Maps {
public static int[] map(int[] arr) {
int[] arr2 = arr;
for (int i =0; i < arr.length; i++) {
arr2[i] = arr[i]*2;
}
return arr2;
}
}
Other:
import java.util.*;
public class Maps {
public static int[] map(int[] arr) {
return Arrays.stream(arr).map(x -> x*2).toArray();
}
}
后记
一开始就没有理解这题的精髓,看了别人的才恍然大悟,原来是要这么做。。。