Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발이글스

[Java] Collection - List, Set, Map 본문

Programming/Java

[Java] Collection - List, Set, Map

지윤이글스 2022. 7. 13. 00:30
Interface  특징
List 순서가 있는 데이터집합, 데이터의 중복을 허용
Arraylist, LinkedList, Stack, Vector
Set 순서가 없는 데이터집합, 데이터의 중복을 허용하지않음
HashSet, TreeSet
Map key & value 의  한쌍으로 이루어지는 데이터의 집합 
HashMap, TreeMap, HashTable, properties

1.List

제일 많이쓰는 구현클래스는 바로 ArrayList!!

ex) ArrayList<PhoneBook> list = new ArrayList<PhoneBook>();

       list.add(new PhoneBook(name, tel, address, age)); //list에 객체 추가

add(객체) 추가 
add(index,객체)  index에 추가 
addAll(index, Collection) index 지정위체 Collection 추가
get(index) index에 객체를 준다.
indexOf(객체) index 위치를 반환
lastindexOf(객체) 그 객체의 제일 마지막에 있는 index를 반환
Remove(index) index 위치의 객체를 삭제
Set(index, 객체) index위치릐 객체를 교체
Size() 리스트의 길이
subList(from, to) from~to 까지의 객체를 List로 반환

2.Set

위의 List Collection 은 순서를 유지해 데이터를 저장했지만, Set은 저장순서가 유지되지 않는다. 

Set Collection은 순서자체가 없기때문에, 인덱스로 객체를 검색해서 가져오는 get메서드도 존재하지 않는다. 

그럼 어떻게 인덱스를 검색하고 값을 찾아낼까??

바로 Iterator 을 쓰면 된다!

전체 객체를 대상으로 한번씩 반복해서 값을 찾아낼 수 있겠다. 반복자(Iterator)은 iterator() method를 호출하면 가져올 수 있다.

Set Collection은 객체를 중복해서 저장할 수 없다고했다. null도 중복 저장이 안된다는것 !!

Set Collection의 대표적인 클래스는 HashSet, TressSet 이다. 

이 2가지 클래스는 Set Interface를 같이 상속하고 있으므로 공통적으로 사용할 수 있는 method가 존재한다. 

boolean add(E e) 주어진 객체를 저장 후 성공적이면 true, 중복객체이면 false를 리턴
boolean contains(OBject o) 주어진 객체가 저장되어있는지 여부를 리턴합니다.
Iterator<E> iterator() 저장된 객체를 한번씩 가져오는 반복자를 리턴합니다.
isEmpty() 컬렉션이 비어잇는지 조사합니다.
int Size() 저장되어 있는 전체 객체수를 리턴합니다.
void clear() 저장된 모든 객체를 삭제합니다.
boolean remove(Object o) 주어진 객체를 삭제합니다.

3.Map

Map Collection 은 key 와 value 로 구성된 객체를 저장하는 구조를 가지고있는 자료구조이다.

key는 중복으로 저장할 수 없고, 값은 중복으로 저장 가능! 

중복된 key값이 들어온다면 기존의 값은 없어지고 새로운 값으로 대치된다. 

 

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

[JAVA] 업캐스팅 & 다운캐스팅  (0) 2022.09.13
[JAVA] super & super()  (0) 2022.09.13
[JAVA] if문, switch문  (0) 2022.09.06
[JAVA] 객체지향 프로그래밍(OOP)  (0) 2022.08.22
[Java] Generic(제네릭)  (0) 2022.07.12