日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Java中的十個(gè)”單行代碼編程”(OneLiner)

本文列舉了十個(gè)使用一行代碼即可獨(dú)立完成(不依賴其他代碼)的業(yè)務(wù)邏輯,主要依賴的是Java8中的Lambda和Stream等新特性以及try-with-resources、JAXB等。

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:主機(jī)域名虛擬主機(jī)、營(yíng)銷軟件、網(wǎng)站建設(shè)、寧波網(wǎng)站維護(hù)、網(wǎng)站推廣。

1、對(duì)列表/數(shù)組中的每個(gè)元素都乘以2

 
 
 
 
  1. // Range是半開(kāi)區(qū)間
  2.  int[] ia = range(1, 10).map(i -> i * 2).toArray();
  3.  List result = range(1, 10).map(i -> i * 2).boxed().collect(toList());

2、計(jì)算集合/數(shù)組中的數(shù)字之和

 
 
 
 
  1. range(1, 1000).sum();
  2. range(1, 1000).reduce(0, Integer::sum);
  3. Stream.iterate(0, i -> i + 1).limit(1000).reduce(0, Integer::sum);
  4. IntStream.iterate(0, i -> i + 1).limit(1000).reduce(0, Integer::sum);

3、驗(yàn)證字符串是否包含集合中的某一字符串

 
 
 
 
  1. final List keywords = Arrays.asList("brown", "fox", "dog", "pangram");
  2. final String tweet = "The quick brown fox jumps over a lazy dog. #pangram http://www.rinkworks.com/words/pangrams.shtml";
  3. keywords.stream().anyMatch(tweet::contains);
  4. keywords.stream().reduce(false, (b, keyword) -> b || tweet.contains(keyword), (l, r) -> l || r);

4、讀取文件內(nèi)容

  • 原作者認(rèn)為try with resources也是一種單行代碼編程。
 
 
 
 
  1. try (BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) {
  2.   String fileText = reader.lines().reduce("", String::concat);
  3. }
  4. try (BufferedReader reader = new BufferedReader(new FileReader("data.txt"))) {
  5.   List fileLines = reader.lines().collect(toCollection(LinkedList::new));
  6. }
  7. try (Stream lines = Files.lines(new File("data.txt").toPath(), Charset.defaultCharset())) {
  8.   List fileLines = lines.collect(toCollection(LinkedList::new));
  9. }

5、輸出歌曲《Happy Birthday to You!》 – 根據(jù)集合中不同的元素輸出不同的字符串

 
 
 
 
  1. range(1, 5).boxed().map(i -> { out.print("Happy Birthday "); if (i == 3) return "dear NAME"; else return "to You"; }).forEach(out::println);

6、過(guò)濾并分組集合中的數(shù)字

 
 
 
 
  1. Map> result = Stream.of(49, 58, 76, 82, 88, 90).collect(groupingBy(forPredicate(i -> i > 60, "passed", "failed")));

7、獲取并解析xml協(xié)議的Web Service

 
 
 
 
  1. FeedType feed = JAXB.unmarshal(new URL("http://search.twitter.com/search.atom?&q=java8"), FeedType.class);
  2. JAXB.marshal(feed, System.out);

8、獲得集合中最小/***的數(shù)字

 
 
 
 
  1. int min = Stream.of(14, 35, -7, 46, 98).reduce(Integer::min).get();
  2.  min = Stream.of(14, 35, -7, 46, 98).min(Integer::compare).get();
  3.  min = Stream.of(14, 35, -7, 46, 98).mapToInt(Integer::new).min();
  4.  int max = Stream.of(14, 35, -7, 46, 98).reduce(Integer::max).get();
  5.  max = Stream.of(14, 35, -7, 46, 98).max(Integer::compare).get();
  6.  max = Stream.of(14, 35, -7, 46, 98).mapToInt(Integer::new).max();

9、并行處理

 
 
 
 
  1. long result = dataList.parallelStream().mapToInt(line -> processItem(line)).sum();

10、集合上的各種查詢(LINQ in Java)

 
 
 
 
  1. List albums = Arrays.asList(unapologetic, tailgates, red);
  2. //篩選出至少有一個(gè)track評(píng)級(jí)4分以上的專輯,并按照名稱排序后打印出來(lái)。
  3. albums.stream()
  4.   .filter(a -> a.tracks.stream().anyMatch(t -> (t.rating >= 4)))
  5.   .sorted(comparing(album -> album.name))
  6.   .forEach(album -> System.out.println(album.name));
  7. //合并所有專輯的track
  8. List allTracks = albums.stream()
  9.   .flatMap(album -> album.tracks.stream())
  10.   .collect(toList());
  11. //根據(jù)track的評(píng)分對(duì)所有track分組
  12. Map> tracksByRating = allTracks.stream()
  13.   .collect(groupingBy(Track::getRating));

分享名稱:Java中的十個(gè)”單行代碼編程”(OneLiner)
網(wǎng)頁(yè)URL:http://www.dlmjj.cn/article/djepiog.html