2016-12-03 1 views
2

Here, 누군가가 파이썬에서 한 줄의 코드로 for 루프를 만들었습니다. 자바루프 용 자바 하나의 라이너

someList = [] 
for i in range(16): 
    someList.append(f(i)) 

또는 : A 본 코드 한 줄 것이다

someList = [f(i) for i in range(16)] 

는 :

int[] someList = {} 
for (int i = 0; i < 16; i++) { 
    someList = append(someList, f(i)); 
} 

그러한 f임을

다른 예는 이쪽 어떤 함수는 정수를 반환합니다.

이제 Java에서 동등한 한 줄짜리 코드가 있습니까?

참고 : 현재 Java와 유사한 Processing을 사용하고 있으므로 Java로 작성된 모든 코드를 Processing에서 사용할 수 있습니다.

+0

당신은 자바의 배열에 추가 할 수 없습니다. 'ArrayList'를 사용하거나 간단하게 올바른 크기의 배열을 생성하십시오 :'int [] someList = new int [16]'그러면 루프에서'someList [i] = f (i)'를하십시오. – Andreas

+1

한 줄에이 이유가 필요합니까? 나는 당신이 단편에 대한 가독성을 선호해야한다고 주장한다. 'for' 루프 솔루션은 이해하기 쉽습니다. 왜 그걸로 붙지 않는거야? –

답변

10

자바 (8)의 IntStream 구출 :

int[] someList = IntStream.range(0, 16).map(i -> f(i)).toArray(); 
+2

@TimBiegeleisen 원래 목록은 OP가 비어 있으며 필수 항목으로 정의 된 것 같습니다. 에뮬레이트하려는 원래의 one-liner OP는 새로운리스트/배열을 생성합니다 :'someList = [f (i) for i in range (16)]' – Mureinik

관련 문제