Java函数操作List、Map等集合的技巧
发布时间:2023-11-21 07:56:47
Java提供了丰富的集合类,如List、Map等,用于存储和操作数据。在日常开发过程中,我们经常需要对这些集合进行操作和处理。下面是一些关于如何操作List、Map等集合的技巧。
1. List操作:
- 使用addAll方法将两个List合并成一个List:
List<String> list1 = new ArrayList<>();
list1.add("a");
list1.add("b");
List<String> list2 = new ArrayList<>();
list2.add("c");
list2.add("d");
List<String> mergedList = new ArrayList<>();
mergedList.addAll(list1);
mergedList.addAll(list2);
- 使用subList方法获取List的子列表:
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
List<String> subList = list.subList(1, 3); //返回子列表["b", "c"]
- 使用Collections的sort方法对List进行排序:
List<Integer> list = new ArrayList<>();
list.add(5);
list.add(2);
list.add(3);
Collections.sort(list); //排序后的list为[2, 3, 5]
2. Map操作:
- 使用containsKey方法检查Map中是否包含某个key:
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
boolean containsKey = map.containsKey("a"); //返回true
- 使用getOrDefault方法获取Map中的值,若key不存在则返回默认值:
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
int value = map.getOrDefault("b", 0); //返回0,因为key"b"不存在
- 使用forEach方法遍历Map中的键值对:
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);
map.put("b", 2);
map.forEach((key, value) -> System.out.println(key + ": " + value));
//输出:
//a: 1
//b: 2
3. 使用stream流进行集合操作:
- 使用filter方法过滤集合中的元素:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> filteredList = list.stream()
.filter(n -> n % 2 == 0) //过滤出偶数
.collect(Collectors.toList());
- 使用map方法对集合中的元素进行映射操作:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> mappedList = list.stream()
.map(n -> n * 2) //将元素乘以2
.collect(Collectors.toList());
- 使用reduce方法对集合中的元素进行聚合操作:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
int sum = list.stream()
.reduce(0, (a, b) -> a + b); //求和
Optional<Integer> max = list.stream()
.reduce(Integer::max); //求最大值
以上是一些Java操作List、Map等集合的技巧。通过合理运用这些技巧,可以更加高效地对集合进行操作和处理。
