* 먼저, 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 |