Stream如何在java中使用?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
Java主要應用于:1. web開發;2. Android開發;3. 客戶端開發;4. 網頁開發;5. 企業級應用開發;6. Java大數據開發;7.游戲開發等。
1.映射
如果想通過某種操作把一個流中的元素轉化成新的流中的元素,可以使用 map() 方法。
public class MapStreamDemo {
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("周杰倫");
list.add("王力宏");
list.add("陶喆");
list.add("林俊杰");
Stream<Integer> stream = list.stream().map(String::length);
stream.forEach(System.out::println);
}
}2.排序
public void test3(){
//(1)自然排序
List<Integer> list = Arrays.asList(4,3,7,9,12,8,10,23,2);
Stream<Integer> stream = list.stream();
stream.sorted().forEach(System.out::println);
//(2)對象排序:對象類可以先實現comparable接口,或者是直接指定
//第一種:先實現compable接口
List<Student> studentList = StudentData.getStudents();
studentList.stream().sorted().forEach(System.out::println);
//第二種:直接指定comparable
List<Student> studentList1 = StudentData.getStudents();
studentList1.stream()
.sorted((e1,e2)-> Integer.compare(e1.getAge(),e2.getAge()))
.forEach(System.out::println);
}3.組合
reduce() 方法的主要作用是把 Stream 中的元素組合起來,它有兩種用法:
Optional reduce(BinaryOperator accumulator)
沒有起始值,只有一個參數,就是運算規則,此時返回 Optional。
T reduce(T identity, BinaryOperator accumulator)
有起始值,有運算規則,兩個參數,此時返回的類型和起始值類型一致。
public class ReduceStreamDemo {
public static void main(String[] args) {
Integer[] ints = {0, 1, 2, 3};
List<Integer> list = Arrays.asList(ints);
Optional<Integer> optional = list.stream().reduce((a, b) -> a + b);
Optional<Integer> optional1 = list.stream().reduce(Integer::sum);
System.out.println(optional.orElse(0));
System.out.println(optional1.orElse(0));
int reduce = list.stream().reduce(6, (a, b) -> a + b);
System.out.println(reduce);
int reduce1 = list.stream().reduce(6, Integer::sum);
System.out.println(reduce1);
}
}關于Stream如何在java中使用問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。