컬렉션이란
컬렉션은 배열을 가지고 직접 사용하는 것을 서비스 개념으로 사용할 수 있게 한다.
데이터 관리를 대신하고 데이터 크기를 가변적으로 바꿔주어서
기본적인 능력은 데이터 수집, 삭제, 크기를 알려주는 기능이 있다.
컬렉션을 사용하면 배열을 사용할 필요가 없다.
저장 내용을 숨기고
배열 상관없이
add(3)으로 값을 저장하고
데이터 수집에 최적화되어있는 도구이다.
데이터 관리를 편하게 받을 수 있고, 그래서 컬렉션을 사용하는 이유는 두 가지 이유가 있다.
1. 데이터 관리를 사용할 필요가 없고
2. 배열은 공간을 늘리고 줄일 수 없는데 컬렉션은 공간을 자동으로 늘려준다.
object는 모든 형식을 참조할 수 있는 참조 형식
근데 값을 참조할 수 없어서 Wrapper클래스가 등장했고
그것을 사용하는 것이 어려워서 Auto /un boxing이 등장했다.
값을 박스에 담는 작업을 박싱이라 하고
참조를 하면 박싱을 해서 참조하는 작업을 했었다.
그냥 대입을 해도 오류가 나지 않는다.
그래서 담은 후 꺼낼 때는 int x = obj.intValue();를 사용하는데, 이 과정을 unboxing이라고 한다.
박싱을 하기 위해 기본형의 수만큼의 wrapper class가 존재하고 object에서 대부분을 묶을 수 있다
object에 바로 대입을 한다고 해도 wrapper class에 의해 바로 공간을 만들어서 저장한다.
그래서 언제부턴가 object로 배열을 만들어서 데이터를 관리하는 것이 편리해지게 되었다.
Object[] data = new Object[5];
data[0] = x;
data[1] = y;
data[2] = c;
data[3] = d;
data[4] = r;
정수형 리스트는 정수형에 국한하지 않고 정수형 리스트는 문제가 있는데 스트링을 넣으면 못 들어가는 문제가 생겼다.
그래서 Object를 사용하게 되었다.
범용 자료 형식의 문제는 정수형으로 받을 때 어떤 형식으로 받을 건지를 고려해야 한다
그래서 문제를 해결학 ㅣ위해서
public class [ ] List {
private [ ] [] data로 형식을 비우는 방법을 사용하기 시작했다.
자바는 모든 것을 object로 만들어서 형 변환하는 문제를 해결하기 위해서 담고 빼줄 때 사용자가 전달하는 자료형으로 형 변환한다. 이것을 제네릭이라고 무엇이든 될 수 있다는 뜻이다. List <T>
1.Glist <string, Integer> list = new Glist();
2.public class GList <T>
객체 생성을 object로 하되 들어오는 값과 나가는 값을 T형으로 해주는 것이다.
3. Map <String, Integer> map = new HashMap <> ();
map.put("id" , 3);
map.pub("title", "Hello"); //만약 다양한 값을 담고 싶다면 Object를 사용한다.
map.get("id"); 를 출력하면 3이 나오게 된다.
'코딩 > 자바' 카테고리의 다른 글
| 자바의 정석 ch9 (0) | 2022.11.06 |
|---|---|
| 자바 구조적인 프로그래밍 (0) | 2022.11.05 |
| 자바의 정석 ch7-2 (0) | 2022.10.27 |
| 자바의 정석 ch7-1 (0) | 2022.10.12 |
| 자바의 정석 ch6-2 (0) | 2022.10.12 |