멍발자의 개발
기초 문법 복습 (7) 메소드 본문
range() = 중간처리
toArray() = 종단처리
마지막 숫자가 포함 안 되고 개수만 맞춰서 나온다.
jshell> var nums = new int[]{2, 5, 3}
nums ==> int[3] { 2, 5, 3 }
jshell> IntStream.of(nums).sum()
$2 ==> 10
jshell> IntStream.range(0, 10).toArray()
$3 ==> int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
rangeClosed() = 종료값이 포함된 숫자열 생성
10까지 포함이라 0부터 10까지면 11개다.
jshell> IntStream.rangeClosed(0, 10).toArray()
$4 ==> int[11] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }
iterate() 인수의 초기값, 반복조건, 다음의 값을 얻는 계산
람다식이 들어간 것만 빼고는 for문이랑 동일한 형태다.
jshell> IntStream.iterate(0, i-> i<10, i-> i+1).toArray()
$5 ==> int[10] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
limit(10)까지 지정해 주지 않으면 무한루프가 돌기 때문에 개수를 지정하였다.
jshell> IntStream.iterate(123, i -> (i* 211 + 2111) % 100).limit(10).toArray()
$6 ==> int[10] { 123, 64, 15, 76, 47, 28, 19, 20, 31, 52 }
의사 난수
Random() 랜덤으로 수 뽑기
0부터 100까지 10개의 수를 랜덤으로 뽑기
jshell> new Random().ints(10, 0, 100).toArray()
$8 ==> int[10] { 87, 77, 70, 17, 61, 35, 95, 2, 44, 7 }
sorted() 작은 숫자부터 큰 숫자로 정렬하기
jshell> IntStream.of(nums).sorted().toArray()
$14 ==> int[3] { 2, 3, 5 }
map을 이용하여 중간 숫자 변환하기
jshell> IntStream.of(nums).map(n -> n * 2 ).toArray()
$10 ==> int[3] { 4, 10, 6 }
mapToObj() 스트림 형태를 변환할 때 쓰기
정수 스트림을 일반 객체 스트림으로 바꿔주는 것이다.
jshell> IntStream.of(nums).mapToObj(n -> "*".repeat(n)).toList()
$15 ==> [**, *****, ***]
mapToInt()
객체 스트림을 다시 정수 스트림으로 바꿔주는 경우 사용하는 메소드다.
jshell> var names = List.of("James", "Britnry", "Sage")
names ==> [James, Britnry, Sage]
jshell> names
names ==> [James, Britnry, Sage]
jshell> names.stream().mapToInt(s -> s.length()).toArray()
$18 ==> int[3] { 5, 7, 4 }
<메소드>
구문: 메소드 선언
메소드는 첫글자에 숫자가 나오면 안 된다.
대문자로 시작할 수는 있지만 소문자로 시작하는 것이 관습이다.
void 메소드명() {
동작내용
}
인수 선언하는 메소드
jshell> void greeting(String name) {System.out.println("Hello" + name);}
| created method greeting(String)
jshell> greeting("홍홍홍")
Hello홍홍홍
void 메소드명 {인수 자료형 처리 중 사용되는 변수) {
처리내용
}
인수 이름은 같은데 인수의 자료형들이 다른 경우를 오버로딩이라 한다.
jshell> void greeting(String name) {System.out.println("Hello" + name);}
| created method greeting(String)
jshell> greeting("홍홍홍") //greeting의 첫번째 메소드
Hello홍홍홍
//greeting의 두번째 메소드
jshell> void greeting(String name, int age) {System.out.println("Hello" + name + ", Age =" + age);}
| created method greeting(String,int)
jshell> greeting("sage", 10)
Hellosage, Age =10
jshell> greeting("sage")
처리 중에 사용하는 변수를 가인수라고 한다. 가인수에 대하여 호출시 지정하는 인수를 실인수라고 한다.
리턴값이 있는 메소드
리턴값 = 반환값
리턴값자료형 메소드명 {인수 자료형 처리 중 사용되는 변수) {
처리내용
}
jshell> int twice(int x) {return x * 2;}
| created method twice(int)
jshell> twice(5)
$37 ==> 10
연습 문제
jshell> int dbl(int n) {return n * 2;}
| created method dbl(int)
jshell> dbl(2)
$39 ==> 4
jshell> int triple(int x) {return x * 3;}
| created method triple(int)
jshell> triple(3)
$41 ==> 9
jshell> String two(String a) {return a.repeat(2);} // 문자열 두번 반복
| created method two(String)
jshell> two("Hi")
$44 ==> "HiHi"
jshell> int max2 (int x, int y) {return x>y ? x:y;} // 둘 중 큰 수 리턴
| created method max2(int,int)
jshell> max2(8, 10)
$46 ==> 10
'STUDY > Java' 카테고리의 다른 글
정규식 표현 & 패턴 정리 (0) | 2022.04.28 |
---|---|
기본 문법 복습 (9) 입출력과 네트워크 (0) | 2022.04.26 |
문자열 조건 세기와 스트림 (0) | 2022.04.19 |
기초 문법 복습(6) (확장 for문, repeat문, 미로 게임) (0) | 2022.04.18 |
기본 문법 복습 (5) 클래스 메소드 (0) | 2022.04.15 |
Comments