Java如何优雅地实现数组集合的相互转换

String数组转int数组

String一维数组转int一维数组(String[] to int[])

【问题】将input = ["10", "1001", "11111", "99999"]转为一维int型数组

【方法】使用stream().mapToInt() + IntStream.toArray()

public static void strToIntArray() {
   String[] input = new String[] {
       "10", "1001", "11111", "99999"
   };
   int[] ints = Arrays.stream(input).mapToInt(Integer::parseInt).toArray();
}

String一维数组转int二维数组(String[] to int[][])

【问题】将input = ["10010", "01101", "11111", "00000"]转为二维int型数组

【方法】使用stream().map().toArray()

public static void main() {
    String[] input = new String[] {
        "10010",
        "01101",
        "11111",
        "00000"
    };
    int[][] ints = Arrays.stream(input).map(s -> {
        int[] arr = new int[s.length()];
        for (int i = 0; i < s.length(); i++) {
            arr[i] = s.charAt(i);
        }
        return arr;
    }).toArray(int[][]::new);
    System.out.println();
}

List转Map

【问题】将一个List<Object>对象转为Map<id, Object>,其中List是类似如下结构:

public class Book {
	private String id;
	private String name;
	// 其他字段...
}

【方法】stream().collect(Collectors.toMap(..)) + Function.identity()

    public static void listToMap(List<Book> list) {
        Map<String, Book> map = list
        .stream()
        .collect(Collectors.toMap(Book::getId, Function.identity()));
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值