在 Java 8 中,stream (). Map ()容許您將一個對象轉換爲其餘對象。查看下面例子:html
public static void main(String[] args) { List<String> alpha = Arrays.asList("a", "b", "c", "d"); //Before Java8 List<String> alphaUpper = new ArrayList<>(); for (String s : alpha) { alphaUpper.add(s.toUpperCase()); } System.out.println(alpha); //[a, b, c, d] System.out.println(alphaUpper); //[A, B, C, D] // Java 8 List<String> collect = alpha.stream().map(String::toUpperCase).collect(Collectors.toList()); System.out.println(collect); //[A, B, C, D] // Extra, streams apply to any data type. List<Integer> num = Arrays.asList(1,2,3,4,5); List<Integer> collect1 = num.stream().map(n -> n * 2).collect(Collectors.toList()); System.out.println(collect1); //[2, 4, 6, 8, 10] }
public class Developer { private String name; private BigDecimal salary; private Integer age; //... }
public static void main(String[] args) { List<Developer> persons = Arrays.asList( new Developer("zhangsan", 20), new Developer("lisi",21), new Developer("wangwu",22)); //Before Java 8 List<String> result = new ArrayList<>(); for (Developer developer : persons) { result.add(developer.getName()); } System.out.println(result); // [zhangsan, lisi, wangwu] //Java 8 List<String> collect = persons.stream().map(x -> x.getName()).collect(Collectors.toList()); System.out.println(collect); // [zhangsan, lisi, wangwu] }
public class Person { private String name; private int age; private String extra; //... }
List<Developer> developers = Arrays.asList( new Developer("zhangsan", 20), new Developer("lisi",21), new Developer("wangwu",22)); List<Person> result = new ArrayList<>(); for (Developer developer : developers) { Person person = new Person(); person.setName(developer.getName()); person.setAge(developer.getAge()); if ("lisi".equals(developer.getName())) { person.setExtra("i am lisi"); } result.add(person); } System.out.println(JSONUtil.toJsonStr(result)); }
List<Developer> developers = Arrays.asList( new Developer("zhangsan", 20), new Developer("lisi",21), new Developer("wangwu",22)); List<Person> result = developers.stream().map(temp -> { Person person = new Person(); person.setName(temp.getName()); person.setAge(temp.getAge()); if ("lisi".equals(temp.getName())) { person.setExtra("i am lisi"); } return person; }).collect(Collectors.toList()); System.out.println(JSONUtil.toJsonStr(result));
源碼見: java-8-demo
系列文章詳見:Java 8 教程java