자바 스터디 3회차

Yoojung Choi·2023년 2월 8일

JAVA 스터디

목록 보기
4/9

1. 반복문

for문 사용법

for문은 반복 횟수를 알고 있을 때 적합하다.
for (초기화;조건식;증감식){실행문} 형식이다.
쉼표를 이용해 두 문장 이상을 하나로 연결해서 쓸 수도 있다.
ex) for(int i = 1, j= 10; i < 10; i++,j--){...}
for문에 사용되는 변수의 수가 적을 수록 효율적이고 간단하기 때문에 불필요한 변수의 사용을 줄이다.

  • 향상된 for문 (enhanced for statement)
    for (타입변수명 : 배열 또는 컬렉션){...}
    for (int tmp : arr_){System.out.println(tmp);}
    향상된 for문은 일반적인 for문과 달리 배열이나 컬렉션에 저장된 요소들을 읽어오는 용도로만 사용할 수 있다는 제약이 있다.
  • 여러개의 반복문이 중첩된 경우, break문으로는 하나의 반복문만을 벗어날 수 있기 때문에 중첩문에 이름을 지정해줄 수 있다.
Loop1 : for(int i = 2; i <= 9; i++){
	for (int j = 1; j <= 9; j++){
		if()
			break Loop1;
		break;
	}
}

while문

조건식이 거짓이 될 때까지 블럭내의 문장을 반복한다.
while(조건식){조건식의 연산결과가 참인 동안 반복}

break문

주로 if문과 함께 사용되어 특정 조건을 만족하면 반복문을 벗어나도록한다.

2. 배열

  • 배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것이다.
    int[] numbers = new int[2]; 방법보다
    List<Integer> numbers = new ArrayList<>(); 방법을 더 많이 사용한다고 한다.
    위와 같은 방법을 JCF(Java Collections Framework)라고하는데, 여러가지 collection interface가 있어 다양한 collection을 같은 문법을 이용해 사용할 수 있다.
    보통 배열을 나타낼 때는 Array, Vector, Hashtable 방법을 이용해 객체를 그룹핑했는데, 사용 목적이 동일하더라도 각각 메소드, 문법, 생성자가 달랐다.
    JCF의 등장으로 메소드, 문법, 생성자를 통일시키며 코드의 재사용이 쉬워지며, 데이터 구조 및 알고리즘의 고성능 구현을 제공해 프로그램의 성능과 품질을 향상시키게 해주었다.


JCF는 크게 Iterable 인터페이스를 상속받는 Collection 인터페이스와 Map 인터페이스로 나눌 수 있다.

Iterable 인터페이스
Iterable 인터페이스는 forEach(), spliterator()가 있고, 상속받은 클래스에서 구체화해주어야하는 Iterator() 메소드가 있다.
Map 인터페이스는 iterable 인터페이스를 상속받지 않기 때문에 iterator()가 없다.(forEach()는 있음)

Collection 인터페이스
Collection 인터페이스는 다시 list, Queue, Set Interface로 나뉘어진다.

  • List Interface
    순서가 있고 데이터의 중복을 허용하는 인터페이스이다.
    List 인터페이스는 다시 ArrayList, LinkedList, Vector class에 상속을 한다.
  1. ArrayList Class
    크기가 가변적인 선형 리스트로, 인덱스를 이용해 내부 요소를 관리한다.
    일반 배열은 사이즈가 정해지면 바꿀 수 없지만, ArrayList는 저장용량이 있어 이 용량을 넘어서면 자동으로 용량을 증가해 추가적으로 요소를 넣을 수 있도록 해준다.
    삽입, 삭제, 탐색, 반환에서 배열과 같은 시간 복잡도를 가진다.

ArrayList<String> fruits = new ArrayList<String> ();

  • ArrayList에 데이터 삽입 방법 (add(값))
    fruits.add("peach");
  • ArrayList의 특정 데이터 조회 방법 (get(인덱스))
    fruits.get(0): peach
  • ArrayList의 특정 데이터 삭제 방법 (remove(인덱스))
  • ArrayList의 모든 데이터 조회 방법 (get())
  • ArrayList에 들어있는 특정 값의 인덱스 조회 방법 (indexOf()) -> 리스트에 동일한 객체가 2개 이상 존재할 때, 가장 앞의 인덱스를 리턴함.
  • ArrayList 내부에 있는 데이터를 오름차순, 내림차순으로 정렬하는 방법 (Collections.sort())-> 오름차순: 한글 > 소문자>대문자>숫자 순, 내림차순 : 숫자> 대문자> 소문자 > 한글 순. 기본은 오름차순이다.
  • ArrayList에 특정 값이 존재하는 지 확인하는 방법 (contains())-> boolean값을 리턴한다.
  • ArrayList에 들어있는 데이터 총 개수 조회 방법 (size())

0개의 댓글