Java8 Lambda如何高效处理List集合元素?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1171个文字,预计阅读时间需要5分钟。
这篇文章主要介绍了Java 8如何通过Lambda表达式处理List集合。文中通过示例代码展示了其使用方法,内容非常简洁,适合对Java 8或相关技术有一定基础的学习者和工作者参考。下面是Java 8新增的Lambda表达式的相关内容,供参考:
Java 8新增的Lambda表达式是一种更简洁、更灵活的函数式编程方式。它允许开发者以更简洁的方式编写匿名函数,从而实现代码的可读性和可维护性。
Lambda表达式的一般形式如下:
java(参数列表) -> {表达式}
其中,参数列表可以是空的,也可以包含多个参数;表达式可以是单一的返回值,也可以是复合表达式。
以下是一些使用Lambda表达式处理List集合的示例:
1. 遍历List集合:
javaList list=Arrays.asList(apple, banana, cherry);list.forEach(s -> System.out.println(s));
2. 查找List集合中所有以字母a开头的元素:
javaList list=Arrays.asList(apple, banana, cherry);List filteredList=list.stream().filter(s -> s.startsWith(a)).collect(Collectors.toList());
3. 将List集合中的所有元素转换为大写:
javaList list=Arrays.asList(apple, banana, cherry);List upperList=list.stream().map(String::toUpperCase).collect(Collectors.toList());
4. 计算List集合中所有元素的和:
javaList list=Arrays.asList(1, 2, 3, 4, 5);int sum=list.stream().reduce(0, Integer::sum);
Lambda表达式在Java 8中的应用非常广泛,有助于提高代码的可读性和可维护性。对于有志于学习Java 8或相关技术的朋友来说,了解Lambda表达式及其在List集合中的应用具有一定的参考价值。
这篇文章主要介绍了java8如何通过Lambda处理List集合,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java 8新增的Lambda表达式,我们可以用简洁高效的代码来处理List。
1、遍历
public static void main(String[] args) { List<User> userList = Lists.newArrayList(); User user1 = new User(1L, "张三", 24); User user2 = new User(2L, "李四", 27); User user3 = new User(3L, "王五", 21); userList.add(user1); userList.add(user2); userList.add(user3); userList.stream().forEach(user ->{ System.out.println(user.getName()); }); }
运行结果:
2、list转为Map
public static void main(String[] args) { List<User> userList = Lists.newArrayList();//存放user对象集合 User user1 = new User(1L, "张三", 24); User user2 = new User(2L, "李四", 27); User user3 = new User(3L, "王五", 21); userList.add(user1); userList.add(user2); userList.add(user3); //ID为key,转为Map Map<Long,User> userMap = userList.stream().collect(Collectors.toMap(User::getId, a -> a,(k1, k2)->k1)); System.out.println(userMap); }
运行结果:
3、将List分组:List里面的对象元素,以某个属性来分组
public static void main(String[] args) { List<User> userList = Lists.newArrayList();//存放user对象集合 User user1 = new User(1L, "张三", 24); User user2 = new User(2L, "李四", 27); User user3 = new User(3L, "王五", 21); User user4 = new User(4L, "张三", 22); User user5 = new User(5L, "李四", 20); User user6 = new User(6L, "王五", 28); userList.add(user1); userList.add(user2); userList.add(user3); userList.add(user4); userList.add(user5); userList.add(user6); //根据name来将userList分组 Map<String, List<User>> groupBy = userList.stream().collect(Collectors.groupingBy(User::getName)); System.out.println(groupBy); }
运行结果:
4、过滤:从集合中过滤出来符合条件的元素
public static void main(String[] args) { List<User> userList = Lists.newArrayList();//存放user对象集合 User user1 = new User(1L, "张三", 24); User user2 = new User(2L, "李四", 27); User user3 = new User(3L, "王五", 21); User user4 = new User(4L, "张三", 22); User user5 = new User(5L, "李四", 20); User user6 = new User(6L, "王五", 28); userList.add(user1); userList.add(user2); userList.add(user3); userList.add(user4); userList.add(user5); userList.add(user6); //取出名字为张三的用户 List<User> filterList = userList.stream().filter(user -> user.getName().equals("张三")).collect(Collectors.toList()); filterList.stream().forEach(user ->{ System.out.println(user.getName()); }); }
运行结果:
5、求和:将集合中的数据按照某个属性求和
public static void main(String[] args) { List<User> userList = Lists.newArrayList();//存放user对象集合 User user1 = new User(1L, "张三", 24); User user2 = new User(2L, "李四", 27); User user3 = new User(3L, "王五", 21); User user4 = new User(4L, "张三", 22); User user5 = new User(5L, "李四", 20); User user6 = new User(6L, "王五", 28); userList.add(user1); userList.add(user2); userList.add(user3); userList.add(user4); userList.add(user5); userList.add(user6); //取出名字为张三的用户 int totalAge = userList.stream().mapToInt(User::getAge).sum(); System.out.println("和:" + totalAge); }
运行结果:
6、从List转为Map,key与value 一 一对应
public static void main(String[] args) { List<User> userList = Lists.newArrayList(); User user1 = new User(1L, "张三", 24); User user2 = new User(2L, "李四", 27); User user3 = new User(3L, "王五", 21); User user4 = new User(4L, "张三", 22); User user5 = new User(5L, "李四", 20); User user6 = new User(6L, "王五", 28); userList.add(user1); userList.add(user2); userList.add(user3); userList.add(user4); userList.add(user5); userList.add(user6); Map<Long/*Id*/,User> userMap = userList.stream().collect(Collectors.toMap(User::getId, user -> user)); System.out.println("toMap:" + JSONArray.toJSONString(userMap)); }
运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。
本文共计1171个文字,预计阅读时间需要5分钟。
这篇文章主要介绍了Java 8如何通过Lambda表达式处理List集合。文中通过示例代码展示了其使用方法,内容非常简洁,适合对Java 8或相关技术有一定基础的学习者和工作者参考。下面是Java 8新增的Lambda表达式的相关内容,供参考:
Java 8新增的Lambda表达式是一种更简洁、更灵活的函数式编程方式。它允许开发者以更简洁的方式编写匿名函数,从而实现代码的可读性和可维护性。
Lambda表达式的一般形式如下:
java(参数列表) -> {表达式}
其中,参数列表可以是空的,也可以包含多个参数;表达式可以是单一的返回值,也可以是复合表达式。
以下是一些使用Lambda表达式处理List集合的示例:
1. 遍历List集合:
javaList list=Arrays.asList(apple, banana, cherry);list.forEach(s -> System.out.println(s));
2. 查找List集合中所有以字母a开头的元素:
javaList list=Arrays.asList(apple, banana, cherry);List filteredList=list.stream().filter(s -> s.startsWith(a)).collect(Collectors.toList());
3. 将List集合中的所有元素转换为大写:
javaList list=Arrays.asList(apple, banana, cherry);List upperList=list.stream().map(String::toUpperCase).collect(Collectors.toList());
4. 计算List集合中所有元素的和:
javaList list=Arrays.asList(1, 2, 3, 4, 5);int sum=list.stream().reduce(0, Integer::sum);
Lambda表达式在Java 8中的应用非常广泛,有助于提高代码的可读性和可维护性。对于有志于学习Java 8或相关技术的朋友来说,了解Lambda表达式及其在List集合中的应用具有一定的参考价值。
这篇文章主要介绍了java8如何通过Lambda处理List集合,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Java 8新增的Lambda表达式,我们可以用简洁高效的代码来处理List。
1、遍历
public static void main(String[] args) { List<User> userList = Lists.newArrayList(); User user1 = new User(1L, "张三", 24); User user2 = new User(2L, "李四", 27); User user3 = new User(3L, "王五", 21); userList.add(user1); userList.add(user2); userList.add(user3); userList.stream().forEach(user ->{ System.out.println(user.getName()); }); }
运行结果:
2、list转为Map
public static void main(String[] args) { List<User> userList = Lists.newArrayList();//存放user对象集合 User user1 = new User(1L, "张三", 24); User user2 = new User(2L, "李四", 27); User user3 = new User(3L, "王五", 21); userList.add(user1); userList.add(user2); userList.add(user3); //ID为key,转为Map Map<Long,User> userMap = userList.stream().collect(Collectors.toMap(User::getId, a -> a,(k1, k2)->k1)); System.out.println(userMap); }
运行结果:
3、将List分组:List里面的对象元素,以某个属性来分组
public static void main(String[] args) { List<User> userList = Lists.newArrayList();//存放user对象集合 User user1 = new User(1L, "张三", 24); User user2 = new User(2L, "李四", 27); User user3 = new User(3L, "王五", 21); User user4 = new User(4L, "张三", 22); User user5 = new User(5L, "李四", 20); User user6 = new User(6L, "王五", 28); userList.add(user1); userList.add(user2); userList.add(user3); userList.add(user4); userList.add(user5); userList.add(user6); //根据name来将userList分组 Map<String, List<User>> groupBy = userList.stream().collect(Collectors.groupingBy(User::getName)); System.out.println(groupBy); }
运行结果:
4、过滤:从集合中过滤出来符合条件的元素
public static void main(String[] args) { List<User> userList = Lists.newArrayList();//存放user对象集合 User user1 = new User(1L, "张三", 24); User user2 = new User(2L, "李四", 27); User user3 = new User(3L, "王五", 21); User user4 = new User(4L, "张三", 22); User user5 = new User(5L, "李四", 20); User user6 = new User(6L, "王五", 28); userList.add(user1); userList.add(user2); userList.add(user3); userList.add(user4); userList.add(user5); userList.add(user6); //取出名字为张三的用户 List<User> filterList = userList.stream().filter(user -> user.getName().equals("张三")).collect(Collectors.toList()); filterList.stream().forEach(user ->{ System.out.println(user.getName()); }); }
运行结果:
5、求和:将集合中的数据按照某个属性求和
public static void main(String[] args) { List<User> userList = Lists.newArrayList();//存放user对象集合 User user1 = new User(1L, "张三", 24); User user2 = new User(2L, "李四", 27); User user3 = new User(3L, "王五", 21); User user4 = new User(4L, "张三", 22); User user5 = new User(5L, "李四", 20); User user6 = new User(6L, "王五", 28); userList.add(user1); userList.add(user2); userList.add(user3); userList.add(user4); userList.add(user5); userList.add(user6); //取出名字为张三的用户 int totalAge = userList.stream().mapToInt(User::getAge).sum(); System.out.println("和:" + totalAge); }
运行结果:
6、从List转为Map,key与value 一 一对应
public static void main(String[] args) { List<User> userList = Lists.newArrayList(); User user1 = new User(1L, "张三", 24); User user2 = new User(2L, "李四", 27); User user3 = new User(3L, "王五", 21); User user4 = new User(4L, "张三", 22); User user5 = new User(5L, "李四", 20); User user6 = new User(6L, "王五", 28); userList.add(user1); userList.add(user2); userList.add(user3); userList.add(user4); userList.add(user5); userList.add(user6); Map<Long/*Id*/,User> userMap = userList.stream().collect(Collectors.toMap(User::getId, user -> user)); System.out.println("toMap:" + JSONArray.toJSONString(userMap)); }
运行结果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持易盾网络。

