4/27 컬렉션

전자인간·2022년 4월 27일

데이터 구조에 따른 대표적인 컬렉션

1) List : 순서대로 쌓여있는 구조(아이템의 중복 허용)
2) Map : 키(key)와 값(value)의 쌍으로 저장(키의 중복 불가)
3) Set : 순서가 없는 집합 (중복 불가)

안드로이드 조작법
https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

배열과 ArrayList 문법 비교

오른쪽 사진의 ArrayList names = new ArrayList(); 를 Listnames = new ArrayList(); 으로 써도 상관없음.

add를 쓰면 names버퍼에 값을 자동으로 할당해 줄것이고 순서대로 0,1,2...배열처럼 저장이 되어 names.get(0) ,names.get(1)...으로 꺼낼 수 있음.

컬렉션은 기본형(int, double, boolean 등)을 취급할 수 없다. 그래서 위의 예제를 이용해서 보자면 ArrayList names와 같은 선언은 안되고 ArrayList names 같은 형태로 선언해야 한다.

Iterator

리스트의 요소를 하나씩 가리키는 객체

HashSet

중복 값을 허용하지 않는 집합
get() 메서드는 제공하지 않기 때문에 반복이 필요하면 Iterator를 사용하거나 for
each를 사용

HashMap

키(key) : 값(value) 의 쌍으로 이루어진 요소를 담는 자료구조.
키의 중복은 허용되지 않음.

HashMap 에 저장된 값을 하나씩 얻기

String형태의 key와 int형(Integar) value로 이루어진 Map 컬렉터의 인스턴스를 HashMap<>();으로 만든다.

person이라는 class에서 age라고 명명한 Integar형 List 컬렉터에 .add를 써서 버퍼에 값을 넣는다.

Map형 인스턴스 stat에 .put을 해서 String형과 Integar형값을 버퍼에 씌운다.

for문을 써서 Map에 저장된 Key들을 하나씩 받고 (여기서는 Integar old) stats.get(key)를 써서 Key값에 저장된 value 값을 하나씩 받는다.

컬렉션 안에 컬렉션

Map<String, List>
List<List>
이런 형태도 가능하다.

0개의 댓글