백엔드/자바

참조자료형 - 리스트(List)

ksge7 2020. 7. 24. 18:12

1. 리스트란?

배열(Array)과 비슷한 자바의 참조 자료형으로 배열보다 편리하다.

 

배열은 선언 할 때 미리 크기를 지정하고 지정된 크기 한도 내에서만 자료 추가가 가능하다.

 

하지만 리스트는 메모리가 허용하는 한도 내에서 자동으로 자료 추가 가능하다.

2. 리스트의 선언

리스트를 선언은 다음과 같다.

 

"ArrayList + <자료형> + 리스트명 = new ArrayList + <자료형> + ( ) "의 형태로 해준다.

 

자료형의 경우 넣지 않아도 되고 넣지 않을 경우 리스트에 다양한 자료형이 추가 가능하다.

 

import java.util.ArrayList;

public class Basic_07_24_03 {

	public static void main(String[] args) {
    
    	ArrayList<String> school = new ArrayList<String>();
        // Arraylist<자료형> + 리스트명 = new ArrayList<자료형>();
        // 리스트에 들어가는 자료형을 꼭 써야한다.
        // import를 보면 알겠지만, 따로 List를 임포트해줘야 한다.
        
	}

}

 

단, LinkedList도 존재하는데 이건 나중에 다루도록 할 예정이다.

3. 리스트의 추가

리스트는 간단하다. 리스트를 선언한 후에 다음과 같이 하면 된다.

 

"리스트명 + add + ( 넣고싶은 값 )"의 형태로 한다.

 

넣고 싶은 값은 위에서 list를 선언할 때 쓴 자료형으로만 사용해야 한다.

 

단, 자료형을 따로 입력하지 않은 경우 다양한 값을 넣을 수도 있다.

 

package Basic_07_24;

import java.util.ArrayList;

public class Basic_07_24_03 {

	public static void main(String[] args) {
    
		ArrayList<String> school = new ArrayList<String>();
        
		school.add("초등학교");
		school.add("중학교");
		school.add("고등학교");
        
	}

}

 

4. 리스트의 요소 값 얻기

각 리스트의 요소 값를 얻으려면 get메서드를 통해 얻을 수 있다.

 

" 리스트명 + . + get ( 인덱스넘버 ) "와 같은 형식으로 얻어낼 수 있다.

 

package Basic_07_24;

import java.util.ArrayList;

public class Basic_07_24_03 {

	public static void main(String[] args) {
    
		ArrayList<String> school = new ArrayList<String>();
        
		school.add("초등학교");
		school.add("중학교");
		school.add("고등학교");
		
		System.out.println(school.get(0)); // "초등학교" 출력
		System.out.println(school.get(1)); // "중학교" 출력
		System.out.println(school.get(2)); // "고등학교" 출력
        
	}

}

 

5. 리스트의 개수 구하기

리스트의 개수를 구하기 위해서는 size함수를 쓴다.

 

" 리스트명 + . + size + ( ) "의 형식으로 쓰면 된다.

 

package Basic_07_24;

import java.util.ArrayList;

public class Basic_07_24_03 {

	public static void main(String[] args) {
    
		ArrayList<String> school = new ArrayList<String>();
        
		school.add("초등학교");
		school.add("중학교");
		school.add("고등학교");
		
		System.out.println(school.size()); // 3 출력
        
	}

}

 

6. 리스트 내에 내용 확인

리스트 내에 어떤 요소가 있는지 확인하려면 contains함수를 쓴다.

 

" 리스트명 + . + contains + ( ) "의 형식으로 쓰면 된다.

 

만약 리스트 내에 찾고 싶은 요소가 있으면 True, 아니면 False가 나옵니다.

package Basic_07_24;

import java.util.ArrayList;

public class Basic_07_24_03 {

	public static void main(String[] args) {
    
		ArrayList<String> school = new ArrayList<String>();
        
		school.add("초등학교");
		school.add("중학교");
		school.add("고등학교");
        
		System.out.println(school.contains("중학교")); // True 출력
        
	}

}

 

7. 리스트 내 요소 삭제하기

remove함수를 쓰면 리스트 내에 있는 요소를 골라서 삭제할 수 있다.

 

remove 함수는 인덱스 넘버를 통해서 삭제하거나 값 자체를 입력해서 삭제하는 두 가지 방법이 있다.

 

" 리스트 명 + remove + ( index넘버 ) " / " 리스트 명 + remove + ( 리스트 요소값 ) " 형식으로 쓴다.

 

인덱스 넘버로 지우면 인덱스 넘버에 맞는 요소를 리스트 내에서 삭제하고 그 요소를 return 해준다.

 

요소 값으로 지우면 해당 요소를 지우고 True값을 return 해준다.

 

만약 삭제하는 요소가 리스트에 없으면 False를 return해준다.

 

package Basic_07_24;

import java.util.ArrayList;

public class Basic_07_24_03 {

	public static void main(String[] args) {
    
		ArrayList<String> school = new ArrayList<String>();
        
		school.add("초등학교");
		school.add("중학교");
		school.add("고등학교");
		

		System.out.println(school.remove(1));
		System.out.println(school.remove("고등학교"));
		
	}

}