1、创建map集合的方式
方式1:
Map<String, Object> map = new HashMap<>();
map.put("a", "test");
map.put("b", "since");
方式2:
Map<String, Object> map2 = new HashMap<>() {{put("c", "driver");put("d", "carer");
}};
方式3:
Map<String, Object> map3 = Maps.newHashMap();map3.put("e", "desk");map3.put("f", "book");
方法4:创建空map
java.util.Collections.emptyMap();
方法5 使用Guava库的ImmutableMap(不可变)
Map immutableMap = ImmutableMap.of("a", 1, "b", 2, "c", 3);
方法6 使用Builder模式来创建更复杂的不可变Map
Map<String,Integer> immutableMapUsingBuilder = ImmutableMap.<String,Integer>builder().put("a", 1).put("b", 4).build();
方法7:java9及以后的创建方式
Map java9ImmutableMap = Map.of("a", 1, "b", 2, "c", 3);// 或者
Map java9MapOfEntries = Map.ofEntries(Map.entry("a", 1),Map.entry("b", 2),Map.entry("c", 3));
方法8:Collections.singletonMap
Map<String, String> map = Collections.singletonMap("key1", "value1");
2、创建list集合的方式
方式1:
List<String> list1 = new ArrayList<>();list1.add("ele1");list1.add("ele2");
方式2:
List<String> list2 = Lists.newArrayList();
方式3:
List<String> list3 = Lists.newArrayList("test1", "test2", "test3");
方式4:
Arrays.asList("a1", "a2", "a3");
方式5:创建空list集合
List emptyList = java.util.Collections.emptyList();
方式6:通过stream创建
List streamList = Stream.of("a", "b", "c").collect(Collectors.toList());
方式7:不可变list
ImmutableList<String> list = ImmutableList.of("a", "b", "c", "d");
方式8:Collections.singletonList
List<String> list = Collections.singletonList("test");
3、map集合常用操作
判断map集合是否为空;获取所有键、所有值、获取值根据键的信息
Map<String, String> map = ImmutableMap.of("key1", "浙江省", "key2", "江苏省", "key3", "河南省");// 判断Map是否为空方法boolean result1 = MapUtils.isEmpty(map);boolean result2 = CollectionUtils.isEmpty(map);// 获取Map中的所有键Set<String> keys = map.keySet();// 获取Map中的所有值Collection<String> values = map.values();// 获取Map中的所有键值对Set<Map.Entry<String, String>> entries = map.entrySet();// 根据键获取值,如果不存在则返回nullString province1 = map.getOrDefault("key1","无省份信息"); // 浙江省String province2 = map.getOrDefault("key4","无省份信息"); // 无省份信息
4、java8 stream常用的一些方法归总
方法1:Collectors.toMap;该方法是将数据转换为map对象,map对象的key要唯一,如果转换之前key有可能存在的话通过(k1,k2)->k1来决定取哪一个key,否则的话会报错
方法2:Collectors.groupingBy 分组的意思,按照某个字段进行分组,我按照省份进行分组,分组后的数据浙江省的有两条,河南省的有一条
方法3:对list集合判断是否为空然后进行stream操作
List<String> collect = Optional.ofNullable(userList).orElse(Collections.emptyList()).stream().map(User::getName).collect(Collectors.toList());
以上总结均为日常开发中高频使用到的,后续有其他方法会进行不断补充。欢迎大家留言补充