java 반복문은 for, while 있습니다.
저는 주로 for문을 많이 사용하고있어서 이번 글에서는 for 설명하겠습니다.
for 문에 사용할 데이터를 List에 넣어 줍니다.
List<String> s_list = new ArrayList<>();
s_list.add("1");
s_list.add("2");
s_list.add("3");
s_list 에 있는 데이터를 for 문으로 출력합니다.
1. 기본 for
for(초기화;조건식;증감식){
//조건식이 true 일때 실행
}
for(int i = 0; i < s_list.size(); i++){
System.out.println("기본 for 문 : "+s_list.get(i));
}
초기화 : int i = 0
조건식 : i < s_list.size()
증감식 : i ++
결과
기본 for 문 : 1
기본 for 문 : 2
기본 for 문 : 3
기본 for 에서 s_list.size() 를 변수로 따로 빼는게 속도? 서버 부하에 좋습니다.
기본 for를 사용할때는 아래 for문을 주로 사용합니다.
int list_size = s_list.size();
for(int i = 0; i < list_size; i++){
System.out.println("기본 for 문 : "+s_list.get(i));
}
2. for each
- 찾아보니 향상된 for 문이라고합니다.
for(변수타입 변수이름 : loop변수){
// loop 변수가 끝날때까지 반복
}
변수타입 : entity, String, int 등 변수가 가능
변수이름 : 변수이름
loop변수 : 반복해서 값을 찾아야하는 값 ( 자료형 배열,ArrayList 등만 가능 )
// for each
for(String st : s_list){
System.out.println("for each 문 : "+st);
}
결과
for each 문 : 1
for each 문 : 2
for each 문 : 3
3. for each
forEach()는 Java8에 추가 되었습니다.
Consumer 함수형 인터페이스를 전달받아 내부적으로 accept라는 메서드를 싱행하도록 되어 있습니다.
Consumer<String> lambda = str -> System.out.println("lambda : "+ str);
s_list.forEach(lambda);
forEach의 매개변수타입 Consumer 이용하여 만든 반복문
결과
lambda : 1
lambda : 2
lambda : 3
- 좀더 간단하게 lambda 사용하기
s_list.forEach(str -> System.out.println("for each 문 : "+str));
결과
for each 문 : 1
for each 문 : 2
for each 문 : 3
총 4가지 방법의 반복문이 있습니다.
저는 주로 2번 for문을 사용합니다.
하지만 장단점이 있어서 최근나온 forEach는 좀더 공부를 해보고 프로젝트에 적용해봐야 할거같습니다.
1, 2, 3 장단점
1번.
단점
- for 값을 가져올때 소스가 길어 지저분하다
장점
- 빠르다
- 원하는 위치 원하는 값을 가져와서 사용할수있다.
2번.
단점
- index 값을 찾을떄 따로 변수를 선언해서 해야한다
- 기본 for문보다 속도가 느리다
- 중간부터 실행이 불가능하다
장점
- 소스가 깔끔하다? 개인 생각입니다.
3번.
아직 잘모르겠습니다. 좀더 사용해보고 장단점을 쓰도록하겠습니다.
- 원하는 값을 빼서 원하는 곳에 넣기 힘들다?
- 간단한 반복문은 기본 for보다 부하가 크다
'공부 > JAVA' 카테고리의 다른 글
JAVA 문자열 뒤집기 (0) | 2024.03.04 |
---|---|
String 기능 모음 (0) | 2024.03.04 |
Java AES-256 양방향 암호화 (0) | 2024.02.16 |
java 특정 날짜 요일 구하기, 날짜 하루 더하기 뺴기 (2) | 2017.01.11 |
CSV 파일 읽어오기 (0) | 2015.12.17 |