【Java】Java中的Stream

public static void main(String[] args) {
		List<String> strList=Arrays.asList("zhangsan ","lisi ","wangwu ","zhangfei ","zhaoyun ","zhaoyun ");
		// foreach
		strList.forEach(item->System.out.print(item));
		System.out.println();
		// distinct
		strList.stream().distinct().forEach(item->System.out.print(item));
		System.out.println();
		// map
		strList.stream().map(item->item+",").collect(Collectors.toList()).forEach(item->System.out.print(item));
		System.out.println();
		// filter
		String newStr=strList.stream().filter(item->item.equals("zhaoyun ")).collect(Collectors.joining(","));
		System.err.println(newStr);
		// limit
		strList.stream().limit(3).forEach(item->System.out.print(item));
		System.out.println();
		// sorted asc
		strList.stream().sorted().forEach(item->System.out.print(item));
		System.out.println();
		// sorted desc
		strList.stream().sorted(new Comparator<String>() {
			public int compare(String o1, String o2) {
				int i=o2.compareTo(o1);
				return i;
			};
		}).forEach(item->System.err.print(item));
		System.out.println();
		
		// IntSummaryStatistics
		List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
		IntSummaryStatistics stats = numbers.stream().mapToInt((x) -> x).summaryStatistics();
		System.out.println("列表中最大的数 : " + stats.getMax());
		System.out.println("列表中最小的数 : " + stats.getMin());
		System.out.println("所有数之和 : " + stats.getSum());
		System.out.println("平均数 : " + stats.getAverage());
	}
运行结果:
zhangsan lisi wangwu zhangfei zhaoyun zhaoyun 
zhangsan lisi wangwu zhangfei zhaoyun 
zhangsan ,lisi ,wangwu ,zhangfei ,zhaoyun ,zhaoyun ,
zhaoyun ,zhaoyun 
zhangsan lisi wangwu 
lisi wangwu zhangfei zhangsan zhaoyun zhaoyun 
zhaoyun zhaoyun zhangsan zhangfei wangwu lisi 
列表中最大的数 : 7
列表中最小的数 : 2
所有数之和 : 25
平均数 : 3.5714285714285716
public class Student {

	private String name;
	private Integer age;
	private String sex;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	@Override
	public String toString() {
		return "Student [name=" + name + ", age=" + age + ", sex=" + sex + "]";
	}
	
}
	public static void testBean() {
		List<Student> stuList = new ArrayList<Student>();
		Student student = new Student();
		student.setName("zhangsan");
		student.setAge(20);
		student.setSex("男");
		stuList.add(student);
		Student student1 = new Student();
		student1.setName("lisi");
		student1.setAge(22);
		student1.setSex("男");
		stuList.add(student1);
		Student student2 = new Student();
		student2.setName("xiaohong");
		student2.setAge(20);
		student2.setSex("女");
		stuList.add(student2);
		System.out.println("---------------------------");
		// 获取对象中的某一个字段的值
		List<String> nameList=stuList.stream().map(Student::getName).collect(Collectors.toList());
		System.out.println(nameList);
		// 多条件过滤
		List<Student> students=stuList.stream()
				.filter(item->!item.getName().equals("zhangsan"))
				.filter(item->!item.getName().equals("lisi"))
				.collect(Collectors.toList());
		System.err.println(students);
		// foreach + if-else
		stuList.stream().forEach(item->{
			if (item.getName().equals("zhangsan")) {
				item.setSex("女");
			}
		});
		System.out.println(stuList);
	}
# 输出结果:
---------------------------
[zhangsan, lisi, xiaohong]
[Student [name=xiaohong, age=20, sex=]]
[Student 
[name=zhangsan, age=20, sex=], 
Student [name=lisi, age=22, sex=], 
Student [name=xiaohong, age=20, sex=]]
发布了66 篇原创文章 · 获赞 6 · 访问量 9404

猜你喜欢

转载自blog.csdn.net/qgnczmnmn/article/details/103784258