之前曾經介紹過關於集合元件轉換成Stream with Lambda的操作,在這邊要帶到的是一些基本
的處理,如在不使用迴圈的情況下如何串接一組空字串,達到排版使用上的目的;再來就是
如何在使用forEach時可以取得index!
應用一:串接空字串
串接空字串目的是為了排版的使用,如上!
在此要特別提到的是,title在第二行不需要再使用到了,但是為了要與上一行對齊,又不想
直接針對hard code做處理,又不想直接寫迴圈來串接.... 因此可以使用IntStream range,從0開
始到對應的長度(此為<,非<=),再來關鍵的地方就是轉換當下的index成" "空字串,可以使用
mapToObj。最後就是蒐集當下的stream做join串接的動作即大功告成!
應用二:forEach取得index
這邊要提到的是forEach在使用上蠻方便的,可以省略一般迴圈走訪時index的宣告!
但是有時候還真的有需要使用到它! 因此又要搬出range了!
DEMO如下
的處理,如在不使用迴圈的情況下如何串接一組空字串,達到排版使用上的目的;再來就是
如何在使用forEach時可以取得index!
應用一:串接空字串
System.out.println("IntStream range 應用1");
String title = "Java Basic Lessons";
String intro1 = title+" --> variables";
String emptyStr = IntStream.range(0, title.length())
.mapToObj(i -> " ")
.collect(Collectors.joining(""));
String intro2 = emptyStr+" --> condition control, flow control";
System.out.println(intro1+"\n"+intro2);
串接空字串目的是為了排版的使用,如上!
在此要特別提到的是,title在第二行不需要再使用到了,但是為了要與上一行對齊,又不想
直接針對hard code做處理,又不想直接寫迴圈來串接.... 因此可以使用IntStream range,從0開
始到對應的長度(此為<,非<=),再來關鍵的地方就是轉換當下的index成" "空字串,可以使用
mapToObj。最後就是蒐集當下的stream做join串接的動作即大功告成!
應用二:forEach取得index
System.out.println("IntStream range 應用2");
String sports[] = {"jogging", "badminton", "both"};
String bodys[] = {"feet", "hand", "feet and hand"};
IntStream.range(0, sports.length).forEach(index -> {
System.out.println(sports[index]+" can train "+bodys[index]);
});
這邊要提到的是forEach在使用上蠻方便的,可以省略一般迴圈走訪時index的宣告!
但是有時候還真的有需要使用到它! 因此又要搬出range了!
DEMO如下
留言
張貼留言