赞
踩
当学习Lambda表达式时,了解和掌握map()
方法是非常重要的,因为它是函数式编程中常用的一种转换操作。在Java中,map()
方法通常与流(Stream)一起使用,用于将流中的每个元素映射到另一个元素。
下面是关于map()
方法的一篇学习指南:
map()
方法map()
方法?map()
方法是流(Stream)类中的一个中间操作方法,它接受一个函数作为参数,并将该函数应用于流中的每个元素,然后返回一个新的流,其中包含由该函数的结果组成的元素。
<R> Stream<R> map(Function<? super T, ? extends R> mapper)
Function<? super T, ? extends R>
:接受一个泛型类型T的参数,并返回一个泛型类型R的结果的函数。假设我们有一个字符串列表,我们想将其中每个字符串转换为大写形式。我们可以使用map()
方法来实现这个转换:
List<String> names = Arrays.asList("Alice", "Bob", "Charlie");
List<String> upperCaseNames = names.stream()
.map(name -> name.toUpperCase())
.collect(Collectors.toList());
System.out.println(upperCaseNames); // 输出: [ALICE, BOB, CHARLIE]
stream()
方法。map()
方法,并传递一个Lambda表达式,该表达式将每个元素转换为大写形式。collect(Collectors.toList())
方法将流中的元素收集到一个新的列表中。map()
方法返回的是一个新的流,原始流不会受到影响。map()
方法的Lambda表达式应该是无状态的,不应该修改外部的状态或变量。map()
方法是Lambda表达式中一个非常有用且强大的功能,它使得在集合数据上进行转换和处理变得更加简单和直观。通过学习和掌握map()
方法,你将能够更好地利用Lambda表达式来提高Java编程的效率和可读性。
public void test() throws ParseException { List<People> peopleList = new ArrayList<People>(); People people1 = new People("张三", 18); People people2 = new People("王五", 19); peopleList.add(people1); peopleList.add(people2); Stream<String> peopleStream = peopleList.stream().map( //使用匿名接口Function重写抽象方法apply,参数一为传入类型,参数二为传出类型 new Function<People, String>() { @Override public String apply(People people) { people.setName("姓名:" + people.getName()); return people.getName(); } } ); peopleStream.forEach(s -> System.out.println(s)); System.out.println("========================================================"); Stream<People> peopleStream2 = peopleList.stream().map( //lambda s->addAge(s) ); peopleStream2.forEach(s -> System.out.println(s)); } public People addAge(People people){ people.setAge(people.getAge()+1); return people; }
public class People { private String name; private int age; public People(String name, int age) { this.name = name; this.age = age; } public People() { } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "People{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
Stream中of方法传入可变参数
Stream中map元素类型转化方法
List<String> names = personList.stream()
.map(person -> person.getName())
.collect(Collectors.toList());
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。