티스토리 뷰
728x90
반응형
이중 반복문으로 출력할 수 있는 가장 간단한 일 중 하나가 바로 구구단이다.
스트림을 이래저래 가지고 놀다 보니까 이중 반복문도 돌아보고 싶어 졌는데,
연습하는 김에 구구단을 출력해 본다.
이중 for문으로 구구단 출력
특별한 설명은 필요 없을 것 같아서 바로 코드로 간다.
import java.util.ArrayList;
import java.util.List;
public class MultiplicationTable {
public static void main(String[] args) {
for(int i = 2; i < 10; i++) {
List<Integer> list = new ArrayList<>();
for (int j = 1; j < 10; j++) {
list.add(i * j);
}
System.out.println(i + " Times Table = " + list);
}
}
}
2 Times Table = [2, 4, 6, 8, 10, 12, 14, 16, 18]
3 Times Table = [3, 6, 9, 12, 15, 18, 21, 24, 27]
4 Times Table = [4, 8, 12, 16, 20, 24, 28, 32, 36]
5 Times Table = [5, 10, 15, 20, 25, 30, 35, 40, 45]
6 Times Table = [6, 12, 18, 24, 30, 36, 42, 48, 54]
7 Times Table = [7, 14, 21, 28, 35, 42, 49, 56, 63]
8 Times Table = [8, 16, 24, 32, 40, 48, 56, 64, 72]
9 Times Table = [9, 18, 27, 36, 45, 54, 63, 72, 81]
스트림으로 구구단 출력
코드를 더 깔끔하게 만들 방법이 생각나지 않아 날것 그대로(?) 올린다.
스트림 안에서 새로 스트림을 생성해서 리스트로 받아 출력해보았다.
import java.util.stream.IntStream;
import static java.util.stream.Collectors.*;
public class StreamMultiplicationTable {
public static void main(String[] args) {
IntStream.rangeClosed(2, 9)
.mapToObj(a -> IntStream.rangeClosed(1, 9)
.map(b -> a * b)
.boxed()
.collect(toList()))
.forEach(a -> System.out.println(a.get(0) + " Times Table = " + a));
}
}
2 Times Table = [2, 4, 6, 8, 10, 12, 14, 16, 18]
3 Times Table = [3, 6, 9, 12, 15, 18, 21, 24, 27]
4 Times Table = [4, 8, 12, 16, 20, 24, 28, 32, 36]
5 Times Table = [5, 10, 15, 20, 25, 30, 35, 40, 45]
6 Times Table = [6, 12, 18, 24, 30, 36, 42, 48, 54]
7 Times Table = [7, 14, 21, 28, 35, 42, 49, 56, 63]
8 Times Table = [8, 16, 24, 32, 40, 48, 56, 64, 72]
9 Times Table = [9, 18, 27, 36, 45, 54, 63, 72, 81]
구현해놓고 보니 아무래도 가독성은 이중 for문이 좋은 것 같다.
그래도 스트림에 익숙해지는 게 목적이니까, 계속 써먹어야지.
소수 판별하는 문제도 스트림으로 풀고 있는데, 추가로 올리도록 하겠다.
반응형
'Java+Spring > Java' 카테고리의 다른 글
[Java]문자열 앞 뒤 공백 제거, trim() vs. strip() (0) | 2022.10.11 |
---|---|
[Java]스트림으로 소수 찾기 (2) | 2022.10.10 |
[Java]무한히 큰 숫자 다루기, BigInteger (2) | 2022.10.09 |
[Java]스트림으로 List ↔ Array 변환 (2) | 2022.10.04 |
[Java]스트림 map() vs. flatMap() (4) | 2022.10.01 |
[Java]스트림에서 max(), min(), average()의 반환타입 (0) | 2022.10.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 세모
- 알고리즘
- 기술면접
- 세계일주
- 파이썬
- java
- 백준
- 중남미
- 면접 준비
- 자바
- Python
- 동적계획법
- 세계여행
- a6000
- 남미
- 여행
- 유럽
- 리스트
- 유럽여행
- Algorithm
- 칼이사
- 스트림
- 야경
- BOJ
- 스프링
- 지지
- spring
- 맛집
- Backjoon
- RX100M5
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함