티스토리 뷰
Java 중복 없이 난수 생성
- 특정 범위의 난수(Random Number)를 중복없이 생성해야 할 상황에 간편하게 구현을 할 수 있는 방법을 알아보게 되면서 공유하고 한다.
해결방법
ThreadLocalRandom 사용
- 자바 8 이후로
Random
클래스의init()
메서드를 사용하여distinct
옵션과limit
옵션을 정한IntStream
을 얻을 수 있게 되었다.
ThreadLocalRandom.current().ints(0, 100).distinct().limit(5).forEach(System.out::println);
Collections.shuffle() 사용
list
에 담긴 특정 범위의 수 들을Collection.shuffle()
메서드를 사용하여Random
하게 섞을 수 있습니다.
List<Integer> range = IntStream.range(0, 100).boxed()
.collect(Collectors.toCollection(ArrayList::new));
Collections.shuffle(range);
range.subList(0, 99).forEach(System.out::println);
참고
끝으로
이 글이 도움이 되었다면, Google 광고 한번씩 클릭 부탁 드립니다. 🙏🙏🙏
광고 클릭은 많은 힘이 됩니다!
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
[Java] Java Stream 여러 필드 정렬(Sorting) 방법 (0) | 2020.04.10 |
---|---|
[Java] 코드(프로그램 내부)에서 외부 JAR 파일 실행시키는 방법 (0) | 2020.03.22 |
(Java) JVM 이해하기 - 더 자바, 코드를 조작하는 다양한 방법 (0) | 2020.03.04 |
(Java) Arrays.asList() 사용시 UnsupportedOperationException 에러 발생 해결 방법 (0) | 2020.02.28 |
(Java) Gson 사용시 ZonedDateTime JSON Serialize/Deserialize 방법 (2) | 2020.02.20 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 스프링부트
- 배낭 여행
- 배낭여행
- 방통대 과제물
- 자전거 여행
- 인텔리제이
- 텐트
- effective java
- intelij
- 이펙티브
- windows
- JavaFX Table View
- java
- 일본 자전거 여행
- 이펙티브자바
- 일본여행
- Java UI
- 자바
- effectivejava
- JavaFX 테이블뷰
- 이펙티브 자바
- JavaFX
- 일본 배낭여행
- TableView
- JavaFX 종료
- JavaFX Window Close
- git
- 자전거
- 일본 여행
- springboot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함