java+Stream流小應用,簡單好理解易錯
阿新 • • 發佈:2021-01-27
Stream< String> s01=list.stream().skip(4);重新建立了一個新的流包含獲取的幾個元素
Stream< String> s01=list.stream().skip(4).limit(4);
流可以對一個字串集合ArrayList內部進行排序,下面使用lambda表示式
list.stream().sorted((s1,s2)->{
int length=s1.length()-s2.length();對於字串長度相等的也有辦法
return 0==length?s1.comparator(s2):length
package Line202;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.stream.Stream;
public class demo06 {
public static void main(String[] args) {
ArrayList<String> person = new ArrayList<>();
person.add("郭飛宇" );
person.add("廢物");
person.add("豐富");
person.add("訪問方法");
person.add("菲菲");
person.add("紛紛為");
person.add("紛紛為");
person.add("紛紛為");
person.add("紛紛為");
int length = person.size();
int count = 3;
int f = 0;
//int page = length / 3 + length % count == 0 ? 0 : 1;
int page=(int)Math.ceil(length / 3.0);
System.out.println(page);
System.out.println(length);
System.out.println(count);
// Stream<String> stream = person.stream();這裡new會出錯,因為下方有foreach,終止輸出函式,下方要使用person.stream(),不信你試試
while (true) {
System.out.println("輸入下一頁1/2還是就上一頁3/4?");
person.stream().skip(f* page).limit(count).forEach(System.out::println);
System.out.println(f);
switch (new Scanner(System.in).next()) {
case "1":
case "2":
f= Math.min( page-1, f+ 1);//下
break;
case "3":
case "4":
f= Math.max(0, f-1);//上一頁
break;
}