본문 바로가기
language/Java

ArrayList_List Collection

by abstract.jiin 2022. 6. 23.

* 먼저, List 타입 선언 시 실행 에러 관련

 

List list = new ArrayList();

로 입력할 시, 아래와 같이 데이터 타입이 정해지지 않았다는 오류가 뜬다.

 

- ArrayList is a raw type. References to generic type ArrayList<E> should be parameterized

- List is a raw type. References to generic type List<E> should be parameterized

 

List<타입> list = new ArrayList<타입>();

으로 지정해줘서, ArrayList를 사용 할 시에, ArrayList 타입을 명시해야 한다. 

 

List list = new ArrayList(); : 타입 미설정으로 타입입 Object 로 선언됨.

List<String> list = new ArrayList<String>(); : int 타입만 사용가능

List<Integer> list = new ArrayList<Integer>(); : String 타입만 사용가능 

 

 

* Collection 


- 자바 프로그램에서 객체를 객체들의 모음 형식으로 관리 할 수 있는 방법을 제공하는 클래스
- 컬렉션은 배열과 유사하지만 데이터를 저장/조회/수정/삭제하는 작업을 쉽게 처리할 수 있으며,

  동적인 크기를 갖는다는 장점이 있다. 
- 컬렉션 계열은 Set/List/Map 등의 인터페이스가 있으며 이를 구현한 클래스를 이용하면 객체들을 모음 저장할 수있다.

* List 컬렉션 


- List 컬렉션은 객체를 인덱스로 관리하기 때문에 객체를 저장하면 자동으로 인덱스 번호가 부여되고 
인덱스를 통해 객체를 검색, 삭제할 수 있는 기능을 제공
- List는 객체를 순서대로 저장하며 동일한 객체를 중복 저장 가능

* List 계열 주요 메서드 


- 객체 추가 기능 

1. add(E e) : 주어진 객체를 List의 맨 끝부분에 추가
2. add(int index, E e): 주어진 인덱스에 객체를 추가
3. set(int index, E e): 주어진 인덱스에 저장된 객체를 주어진 객체로 바꿈

- 객체 검색 기능 > System.out.println(); 내부에 넣어서 사용

1. contains(Object o) : 주어진 객체가 저장되어 있는지의 여부를 판단 (중복 판단)
2. get(int index) : 주어진 인덱스에 저장되어 있는 객체를 리턴
3. isEmpty() : 컬렉션이 비어있는지의 여부를 판단 > 값은 true 또는 false
4. size() :저장되어 있는 전체 객체 수를 리턴.

- 객체 삭제 기능 


1. clear(): 저장된 모든 객체를 삭제
2. remove(int index): 주어진 인덱스에 저장된 객체를 삭제
3. remove(Object o): 주어진 객체를 삭제 

 

종합해서 적용한 응용예제

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ListStudy {
	public static void main(String[] args) {
		//List list = new ArrayList();
		List<Integer> list = new ArrayList<Integer>();
		
		// 1. 객체 추가 기능
		
		list.add(5);
		list.add(6);
		System.out.println(list); // [5, 6]

		list.add(0, 10);
		System.out.println(list); // [10, 5, 6]

		list.set(1, 50);
		System.out.println(list); // [10, 50, 6]

		// 작은 숫자를 왼쪽으로, 큰 숫자를 오른쪽으로
		Collections.sort(list);
		System.out.println(list); //[6, 10, 50]
		
		// 2. 객체 검색 기능 ( 검색 결과를 보기 위해서 무조건 System.out.println(); 내부에 넣어야 함

		System.out.println(list.contains(10)); // true
		System.out.println(list.contains(0)); // false
		// 값을 출력 하는게 아니고, 값이 있다 > true, 없다 > false 로 나옴

		System.out.println(list.get(2)); // 50 : 2번 인덱스에 있는 자료가 무엇일까? > 50

		System.out.println(list.isEmpty()); // false

		System.out.println(list.size()); // 3 : 배열 크기

		// 3. 객체 삭제 기능
		System.out.println(list.remove(0)); // 6
											// 삭제를 무엇을 했는지 띄움

		// System.out.println(list.remove(50)); -> 인덱스 50에 가서 삭제하려고 하니 값이 없어서 에러
		System.out.println(list.remove((Integer) 50)); // 50이 들어있는 곳 찾아서 삭제 // ** 출력은 true?
														// Integer로 자료형변환
		
		System.out.println(list); // [10] -> 위에서 6도 삭제하고 50도 삭제해서 10만 남았다.

		list.clear(); // 전체 삭제
		System.out.println(list); // [] -> 텅텅 비었다. 전부 clear.		
	}
}

 

실행결과 

더보기

[5, 6]
[10, 5, 6]
[10, 50, 6]
[6, 10, 50]
true
false
50
false
3
6
true
[10]
[]

 

 

'language > Java' 카테고리의 다른 글

[실습] try ~ catch ~ finally + ArrayList 복습하기  (0) 2022.06.30
[실습] interface, static method, default method  (0) 2022.06.26
[응용 예제] Bingo  (0) 2022.06.21
2차원 배열(Array)  (0) 2022.06.21
배열(Array)  (0) 2022.05.30