每日一练64——Java初学者遗忘的Map(8kyu)

题目

给定一个整数数组,返回一个新数组,每个值加倍。

例如:

[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();
  }
}

后记

一开始就没有理解这题的精髓,看了别人的才恍然大悟,原来是要这么做。。。

你可能感兴趣的:(每日一练64——Java初学者遗忘的Map(8kyu))