자바 8 에 서 는 흐름 구분 소수 와 비 질 수 를 사용 하여 상세 하 게 설명 합 니 다.

긴 말 안 할 게 요.그냥 코드 보 세 요~

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) {
    //                       
    int sqrt = (int)Math.sqrt(endNum);

    //                     true
    return IntStream.rangeClosed(2, sqrt).noneMatch(e -> endNum % e == 0);

  }
}
보충 지식:자바 는 1-100 이내 의 모든 소 수 를 구하 고 하나의 수가 소수 인지 아 닌 지 를 판단 한다.자바 코드 구현 테스트 결과 도
소수(prime number)는 소수 라 고도 부 르 며 무한 개가 있다.
질 수 는 1 보다 큰 자연수 에서 1 과 그 자 체 를 제외 하고 다른 인수 가 없 는 수 를 양수 라 고 정의 한다.
어린 사제 가 저 에 게 이런 연락 문 제 를 물 었 습 니 다.간단 해 보이 지만 모두 가 간단 하 다 고 생각 하 는 것 을 나 눌 필요 가 없다 면 초보 자 는 고 통 스 럽 지 않 습 니까?
그래서 제 가 사제 님 께 시범 을 보 여 드 렸 습 니 다.초보 자 를 편리 하 게 하고 코드 를 어떻게 쓰 는 지 보 세 요.
코드 내부 의 세부 사항(작업 을 시작 하지 않 았 거나 방금 일 한 형 들 을 대상 으로 합 니 다):
1.모듈 화 사상.
먼저 수 요 를 나 누 어 1-100 이내 의 소 수 를 구 하 라 고 했 는데 올 라 와 서 할 수 없 으 니 먼저 한 수의 소수 가 소수 인지 아 닌 지 를 어떻게 확정 하 는 지 를 고려 한 다음 에 모든 것 으로 재 활용 하 세 요.
방법 을 한데 쌓 을 수 없다.그렇지 않 으 면 코드 를 어떻게 재 활용 할 것 인가?
2.주석 에 주의 하 세 요.
자신의 테스트 코드 라 도 어쨌든 주석 을 써 라.그러면 3 개 월 이 지나 도 코드 를 보면 1 분 이면 알 수 있다.간단 하 다 고 해서 주석 을 달 기 를 귀 찮 게 하지 마라.
매개 변수의 주석 이 생략 되 더 라 도 이 방법의 역할 은 설명해 야 한다.
들 어 본 것 같은 데:
잘 쓴 코드,3 개 월 후에 돌 이 켜 보면 알 아 볼 수 있 습 니 다.그리고 자신 이 쓴 것 이 아니 라 는 것 도 알 고 있 습 니 다.와,이것 은 제 가 쓴 코드 입 니까?!!!
3.매개 변수 이름 에 주의 하 십시오.
유형 명 부터 방법 명,변수 명 까지 마음대로 이름 을 지 을 수 없습니다.a,b,c,d 라 고 부 르 는 것 은 너무 자 유 롭 습 니 다.선생님 께 서 수업 을 이렇게 하 시 면 편리 하도록 키 보드 를 몇 번 덜 두 드 리 겠 습 니 다.
하지만 초보 자 들 은 가장 기본 적 인 부분 부터 시작 하 세 요.그러면 프로젝트 에 나 오 면 이 빨 이 빠 지 는 이름 을 짓 지 않 을 겁 니 다.
이 이름 에 대해 서 는 그 가 길다 고 싫어 하지 마라.중요 한 것 은 뜻 이 분명 하 다 는 것 이다.명성 을 보고 뜻 을 알다.가장 좋다.
4.코드 포맷.
일부 신인 들 은 선생님 과 몇 년 동안 일 한 종사자 들 을 포함 하여 이 포맷 코드 에 습관 이 없 을 것 이다.
네가 습관 이 되 기만 한다 면 이것 은 다른 사람 이 말 하지 않 아 도 된다.네가 다 쓰 면 format 할 것 이다.그리고 이렇게 하면 당신 의 코드 도 깨끗 해 보 입 니 다.
보기 만 해도 시원 하 다.
다음은 코드 를 보 겠 습 니 다.

package com.lxk.test;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 *  1-100     
 * <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     ,    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;
  }
 
  /**
   *           :   1     
   * <p>
   *   : 2   ,    n,         < n    ,         ,         
   */
  private static boolean numberIsPrime(int n) {
    for (int i = 2; i < n; i++) {
      if (n % i == 0) {
        return false;
      }
    }
    return true;
  }
}
실행 결과 그림:

작은 문제 하나 에 가슴 을 적 시 는 내 가 이렇게 많은 것 을 정리 하 는 것 은 너무 시 끄 러 운 것 이 아 닙 니까?
당연 하지,이것 은 모두 작은 건의 들 이 야.
반 보 를 쌓 지 않 으 면 천리 까지 갈 수 없다.백 층 의 높 은 대 는 흙 을 쌓 는 데 서 시작 되 잖 아.이 이 치 는 모두 간단 하지만 실현 은 쉽 지 않다.
이상 의 이 편 은 자바 8 에서 흐름 을 이용 하여 질 수 와 비 질 수 를 구분 하 는 상세 한 설명 은 바로 소 편 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 여러분 들 이 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기