欢迎访问宙启技术站
智能推送

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等集合的技巧。通过合理运用这些技巧,可以更加高效地对集合进行操作和处理。