1. 基础类型相互转换

String 转成 int

  1. //方式1:
  2. int a = Integer.parseInt(str);
  3. //方式2:
  4. int b = Integer.valueOf(str).intValue()

2. 数组相互转换

List 转成 int 数组

  1. list.stream().mapToInt(Integer::intValue).toArray();
  2. @Test
  3. public void test() {
  4. List<Integer> list = new ArrayList<>();
  5. list.add(1);
  6. list.add(2);
  7. list.add(3);
  8. //mapToInt()把Stream<Integer>调用Integer::valueOf来转成IntStream,IntStream中默认toArray()转成int[]
  9. int[] array = list.stream().mapToInt(Integer::intValue).toArray();
  10. }

List 转成 int[] 数组

  1. @Test
  2. public void test() {
  3. List<List<Integer>> list = new ArrayList<>();
  4. list.add(new ArrayList());
  5. list.add(new ArrayList());
  6. list.add(new ArrayList());
  7. //mapToInt()把Stream<Integer>调用Integer::valueOf来转成IntStream,IntStream中默认toArray()转成int[]
  8. int[] array = list.toArray(new int[list.size()][]);
  9. }

List 转成 Integer数组

  1. list.toArray(newInteger[list.size()])
  2. @Test
  3. public void test() {
  4. List<Integer> list = new ArrayList<>();
  5. list.add(1);
  6. list.add(2);
  7. list.add(3);
  8. Integer[] array = list.toArray(new Integer[list.size()]);
  9. }

List 转成 String数组

  1. list.stream().toArray(String[]::new) ;
  2. @Test
  3. public void test() {
  4. List<String> list = new ArrayList<>();
  5. list.add("1");
  6. list.add("2");
  7. list.add("3");
  8. String[] array = list.stream().toArray(String[]::new) ;
  9. }

Integer 数组转成 List

  1. Arrays.asList(T ...a)
  2. @Test
  3. public void test() {
  4. Integer[] arr = {12,13,15};
  5. List<Integer> list = Arrays.asList(arr);
  6. }

int 数组转成 List

  1. Arrays.stream(数组名).boxed().collect(Collectors.toList())
  2. @Test
  3. public void test() {
  4. int[] arr = {12,13,15};
  5. // 1.使用Arrays.stream将int[]转换成IntStream
  6. // 2.使用IntStream中的boxed()装箱。将IntStream转换成Stream<Integer>
  7. // 3.使用Stream的collect(),将Stream<T>转换成List<T>,因此正是List<Integer>
  8. List<Integer> list = Arrays.stream(arr).boxed().collect(Collectors.toList());
  9. }

Integer 数组转成 int 数组

Arrays.stream(arr).mapToInt(Integer::valueOf).toArray()


@Test
public void test05() {
    Integer[] arr = {12,13,15};
    //先将Integer[]转成Stream<Integer>,再转成IntStream
    int[] res = Arrays.stream(arr).mapToInt(Integer::valueOf).toArray();
}

int 数组转成 Integer 数组

Arrays.stream(arr).boxed().toArray(Integer[]::new)


@Test
public void test() {
    int[] arr = {12,13,15};
    //先将int[]装成intStream,然后使用boxed()进行装箱,得到Stream(Integer)
    //然后使用Stream的toArray,传入IntFunction<A[]> generator,返回Integer[]
    Integer[] res = Arrays.stream(arr).boxed().toArray(Integer[]::new);
}