java中如何快速创建list和快速创建map

创建list

复制代码
// 最简单的
List<String> strings = Lists.newArrayList("a", "b", "c", "d", "a");
List<String> strings2 = new ArrayList<>();

// 创建的list是不可变的
List<String> strings = Arrays.asList("a", "b", "c");

// 创建一个正常的list
List<String> strings1 = new ArrayList<>(Arrays.asList("a", "b", "c"));
复制代码

 

 

快速创建一个map

// 正常创建map方法
Map<String, String> stringStringHashMap1 = new HashMap<>();

// 用谷歌的guava工具,创建的map是不可变的,也就是你不能进行修改
ImmutableMap<String, Integer> of = ImmutableMap.of("a", 1, "b", 2, "c", 3);
// guava工具还实现了创建者模式
ImmutableMap<Object, Object> build1 = ImmutableMap.builder().put("a", 1).put("b", 4).build();

 

 

快速创建一个set

// 用guava 快速创建一个set
ImmutableSet<Object> build2 = ImmutableSet.builder().add("a").add("b").build();

 

 

list 与array 互转

复制代码
List<Integer> numList = Lists.newArrayList(1, 2, 3, 4);
        // list 转 数组
        Integer[] numArray = numList.toArray(new Integer[0]);
        System.out.println("numArray = " + JSONObject.toJSON(numArray));

        // lambda 表达式 数组转list
        List<Integer> newList = Arrays.stream(numArray).collect(Collectors.toList());
        System.out.println("newList = " + JSONObject.toJSON(newList));

        // Arrays工具转成不可变的list 
        List<Integer> integers = Arrays.asList(numArray);
复制代码

 

 

list 去重

复制代码
 

// 基本类型去重
List<String> collect = list.stream().distinct().collect(Collectors.toList());

// 对象类型去重
List<Student> collect = students.stream()
      .collect(
               Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(o -> o.getA() + o.getB()))
                                                      ), ArrayList::new)
     );
复制代码

 

posted @   Mikey-  阅读(3761)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
历史上的今天:
2021-08-09 <Date>Java一个不错的输出当前时间的工具类
2021-08-09 可以设置过期时间的Java缓存ExpiringMap
点击右上角即可分享
微信分享提示