欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在java8中使用流區(qū)分質(zhì)數(shù)與非質(zhì)數(shù)詳解

 更新時間:2020年12月04日 10:21:42   作者:愿你活成你喜歡的模樣  
這篇文章主要介紹了在java8中使用流區(qū)分質(zhì)數(shù)與非質(zhì)數(shù)詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

我就廢話不多說了,大家還是直接看代碼吧~

public class PrimeTest {

  public static void main(String[] args) {
    Map<Boolean, List<Integer>> collect = IntStream.rangeClosed(2, 100).boxed().collect(partitioningBy(PrimeTest::isPrime));

    System.out.println(collect.get(true));
    System.out.println(collect.get(false));

  }

  private static boolean isPrime(int endNum) {
    // 一個優(yōu)化就是僅測試小于等于待測數(shù)平方根的因子
    int sqrt = (int)Math.sqrt(endNum);

    // 如果待測數(shù)字不能被流中任何數(shù)字整除則返回true
    return IntStream.rangeClosed(2, sqrt).noneMatch(e -> endNum % e == 0);

  }
}

補充知識:Java 求1-100以內(nèi)的所有素數(shù),判斷一個數(shù)是不是素數(shù)。Java代碼實現(xiàn)附測試結(jié)果圖

質(zhì)數(shù)(prime number)又稱素數(shù),有無限個。

質(zhì)數(shù)定義為在大于1的自然數(shù)中,除了1和它本身以外不再有其他因數(shù)的數(shù)稱為質(zhì)數(shù)。

小師弟問了我個這么個聯(lián)系題,雖然看似簡單,但是,大家都覺得簡單的東西,沒必要分享的話,那初學(xué)者,不是很痛苦嗎?

所以,我就給小師弟示范了一下。方便初學(xué)者,看看怎么寫代碼。

代碼內(nèi)部的細(xì)節(jié)(都是針對沒開始工作,或者剛剛工作的哥們):

1,模塊化思想。

先拆分需求,本來讓你求1-100以內(nèi)的素數(shù),你不能上來就干,先拆分先考慮怎么確定一個數(shù)是不是素數(shù),然后再復(fù)用到所有。

不能把方法堆到一起,不然怎么復(fù)用代碼。

2,注意注釋。

就算是自己的測試代碼,你好歹也寫個注釋,這樣即使過了三個月,再看代碼,也是分分鐘就能明白。不要覺得簡單,就懶得注釋

就算參數(shù)的注釋省略了,但是你這個方法的作用還是得說明一下。

好像聽說過:

寫的好的代碼,三個月后,回頭看,還能看懂,還知道是自己寫的,而不是,哇,這是我寫的代碼嗎!?。?!

3,注意參數(shù)命名。

從類名到方法名,再到變量名,都不能隨意取名,叫個a,b,c,d,啥的,太隨意了,老師講課這么干,為了省事,少敲幾下鍵盤。

但是,新手們,還是從最基礎(chǔ)的地方做起吧,這樣你出來到項目上,就不會取一些笑掉大牙的命名啦。

關(guān)于這個命名,不要嫌棄他長,重點是意思清楚明白。見名知意。是最好的。

4,代碼格式化。

一些新人,包括老師,以及一些工作了些年的從業(yè)人員,他們可能就沒有這個格式化代碼的習(xí)慣。

只要你養(yǎng)成習(xí)慣了,這個就不用別人說,你自己寫完就會format一下的。而且,這么一整,你的代碼看著也是干凈整潔。

看著就舒爽。

下面看代碼吧:

package com.lxk.test;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * 求1-100的素數(shù)測試
 * <p>
 * Created by lxk on 2017/3/2
 */
public class PrimeNumberTest {
  public static void main(String[] args) {
    int n = 100;
    System.out.println(getPrimeNumberToN(n));
  }
 
  /**
   * 得到1到n之間的素數(shù),存到一個ArrayList集合
   */
  private static List<Integer> getPrimeNumberToN(int n) {
    List<Integer> result = new ArrayList<>();
    for (int i = 1; i < n + 1; i++) {
      if (numberIsPrime(i)) {
        result.add(i);
      }
    }
    return result;
  }
 
  /**
   * 判斷一個數(shù)是不是素數(shù):只能被1和本身整除
   * <p>
   * 說明:從2開始除,不需要到n,也就是循環(huán)條件是 < n 就可以,這之間只要被整除了,那么他就不是素數(shù)了
   */
  private static boolean numberIsPrime(int n) {
    for (int i = 2; i < n; i++) {
      if (n % i == 0) {
        return false;
      }
    }
    return true;
  }
}

執(zhí)行結(jié)果圖:

一道小小的題目,濕胸我總結(jié)這么多,是不是太啰嗦了。

當(dāng)然了,這都是一些些小的建議。

不積跬步,無以至千里啊。百層高臺起于壘土的嘛。這道理都簡單,但是實現(xiàn)卻不易。

以上這篇在java8中使用流區(qū)分質(zhì)數(shù)與非質(zhì)數(shù)詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java導(dǎo)出數(shù)據(jù)庫的全部表到excel

    java導(dǎo)出數(shù)據(jù)庫的全部表到excel

    這篇文章主要為大家詳細(xì)介紹了java導(dǎo)出數(shù)據(jù)庫的全部表到excel的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-03-03
  • SpringBoot?自定義注解之脫敏注解詳解

    SpringBoot?自定義注解之脫敏注解詳解

    這篇文章主要介紹了SpringBoot?自定義注解之脫敏注解詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java接口的作用_動力節(jié)點Java學(xué)院整理

    Java接口的作用_動力節(jié)點Java學(xué)院整理

    這篇文章主要介紹了Java接口的作用,涉及到接口的規(guī)范相關(guān)知識,需要的的朋友參考下
    2017-04-04
  • 淺析 Java多線程

    淺析 Java多線程

    這篇文章主要介紹了Java多線程的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java線程相關(guān)知識,感興趣的朋友可以了解下
    2020-09-09
  • java獲取優(yōu)酷視頻地址示例

    java獲取優(yōu)酷視頻地址示例

    使用JAVA解析優(yōu)酷視頻頁,得到視頻真實地址, 還可以下載,需要的朋友可以參考下
    2014-03-03
  • Spring-IOC容器中的常用注解與使用方法詳解

    Spring-IOC容器中的常用注解與使用方法詳解

    Spring是一個輕量級Java開發(fā)框架,最早有Rod Johnson創(chuàng)建,目的是為了解決企業(yè)級應(yīng)用開發(fā)的業(yè)務(wù)邏輯層和其他各層的耦合問題,這篇文章給大家詳細(xì)介紹Spring-IOC容器中的常用注解與使用方法,感興趣的朋友跟隨小編一起看看吧
    2021-04-04
  • Java多線程程序中synchronized修飾方法的使用實例

    Java多線程程序中synchronized修飾方法的使用實例

    synchronized關(guān)鍵字主要北用來進(jìn)行線程同步,這里我們主要來演示Java多線程程序中synchronized修飾方法的使用實例,需要的朋友可以參考下:
    2016-06-06
  • SpringBoot結(jié)合Maven項目依賴版本沖突問題解決

    SpringBoot結(jié)合Maven項目依賴版本沖突問題解決

    本文主要介紹了SpringBoot結(jié)合Maven項目依賴版本沖突問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 單例模式垃圾回收_動力節(jié)點Java學(xué)院整理

    單例模式垃圾回收_動力節(jié)點Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了單例模式垃圾回收的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • ThreadLocal簡介_動力節(jié)點Java學(xué)院整理

    ThreadLocal簡介_動力節(jié)點Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了ThreadLocal簡介的相關(guān)資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-08-08

最新評論