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();
// 根据键获取值,如果不存在则返回null
String 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());
以上总结均为日常开发中高频使用到的,后续有其他方法会进行不断补充。欢迎大家留言补充