package com
.mozi
.stream
;
public class User {
private String name
;
private int age
;
public User() {
}
public User(String name
, int age
) {
this.name
= name
;
this.age
= age
;
}
public int getAge() {
return age
;
}
public void setAge(int age
) {
this.age
= age
;
}
public String
getName() {
return name
;
}
public void setName(String name
) {
this.name
= name
;
}
@Override
public int hashCode() {
final int prime
= 31;
int result
= 1;
result
= prime
* result
+ age
;
result
= prime
* result
+ ((name
== null
) ? 0 : name
.hashCode());
return result
;
}
@Override
public boolean equals(Object obj
) {
if (this == obj
)
return true;
if (obj
== null
)
return false;
if (getClass() != obj
.getClass())
return false;
User other
= (User
) obj
;
if (age
!= other
.age
)
return false;
if (name
== null
) {
if (other
.name
!= null
)
return false;
} else if (!name
.equals(other
.name
))
return false;
return true;
}
@Override
public String
toString() {
return "User{" +
"name='" + name
+ '\'' +
", age=" + age
+
'}';
}
}
```java
package com
.mozi
.stream
;
import java
.util
.ArrayList
;
import java
.util
.Arrays
;
import java
.util
.Comparator
;
import java
.util
.IntSummaryStatistics
;
import java
.util
.List
;
import java
.util
.Optional
;
import java
.util
.stream
.Collectors
;
import java
.util
.stream
.Stream
;
import org
.junit
.Before
;
import org
.junit
.Test
;
public class StreamTest {
private List
<User> userList
;
@Before
public void streamNew() {
userList
= new ArrayList<User>();
User user1
= new User("小花", 13);
User user2
= new User("大花", 16);
User user3
= new User("小米", 23);
User user4
= new User("大米", 24);
User user5
= new User("张三", 18);
User user6
= new User("李四", 15);
User user7
= new User("王五", 22);
User user8
= new User("李珊珊", 29);
User user9
= new User("朝夕夕", 24);
userList
.add(user1
);
userList
.add(user2
);
userList
.add(user3
);
userList
.add(user4
);
userList
.add(user5
);
userList
.add(user6
);
userList
.add(user7
);
userList
.add(user8
);
userList
.add(user9
);
}
@Test
public void streamCollect() {
Stream
<String> stream
= Stream
.of("张三","李四","王五","赵六");
String string2
= stream
.collect(Collectors
.joining("-"," "," "));
System
.out
.println(string2
);
}
@Test
public void streamReduce() {
Integer reduce
= userList
.stream().map(user
-> user
.getAge())
.reduce(10,(x
,y
) -> x
+y
);
System
.out
.println(reduce
);
}
@Test
public void streamFindFirst() {
Optional
<User> findFirst
= userList
.stream().findFirst();
User user
= findFirst
.get();
System
.out
.println(user
);
}
@Test
public void streamFlatMap() {
List
<String> list1
= Arrays
.asList("aa","bb","cc");
List
<String> list2
= Arrays
.asList("dd","ee");
Stream
<List
<String>> stream
= Stream
.of(list1
,list2
);
}
@Test
public void streamMap() {
}
@Test
public void StreamArith() {
IntSummaryStatistics num
= userList
.stream().
mapToInt(user
-> user
.getAge())
.summaryStatistics();
System
.out
.println("总共人数:" + num
.getCount());
System
.out
.println("平均年龄:" + num
.getAverage());
System
.out
.println("最大年龄:" + num
.getMax());
System
.out
.println("最小年龄:" + num
.getMin());
System
.out
.println("年龄之和:" + num
.getSum());
}
@Test
public void streamDemo() {
List
<User> list
= userList
.stream().distinct()
.filter(user
-> user
.getAge() > 20)
.sorted(Comparator
.comparingInt(User
::getAge
))
.limit(2L
).collect(Collectors
.toList());
list
.stream().forEach(System
.out
::println
);
}
@Test
public void streamDistinct() {
List
<User> list
= userList
.stream().distinct().collect(Collectors
.toList());
list
.stream().forEach(System
.out
::println
);
}
@Test
public void streamSkip() {
userList
.stream().skip(2L
).forEach(System
.out
::println
);
}
@Test
public void streamLimit() {
userList
.stream().limit(2).forEach(System
.out
::println
);
}
@Test
public void StreamFilter() {
List
<User> list
= userList
.stream().filter(user
-> user
.getAge() > 20).collect(Collectors
.toList());
list
.forEach(user
-> System
.out
.println(user
));
}
@Test
public void streamForEach() {
userList
.forEach(user
-> System
.out
.println(user
));
userList
.stream().forEach(System
.out
::print
);
}
@Test
public void streamSorted() {
userList
.stream().sorted(Comparator
.comparingInt(User
::getAge
)).forEach(System
.out
::print
);
}
}
转载请注明原文地址: https://lol.8miu.com/read-6466.html