한바다
[JAVA]List Set Map 본문
#liST
[정의]
-.자료를 순차적으로 나열한 구조로 순서가 있는 데이터 컬렉션(순서를 유지하고 저장)
-.인덱스가 존재하며 인덱스로 순서가 구분되기 때문에 중복 데이터 저장 가능
즉 중복을 포함할 수 있다.(Set ,Map은 중복 불가)
-.배열에서 변환이 된 인터페이스이지 배열이 아니다. 인터페이스 객체로 생성이 불가능.
리스트는 인터페이스이기 떄문에 단독으로 사용불가, 다형성으로 이용할 수 있음
-.크기를 유동적으로 조정할 수 있다.
-.요소의 추가 제거 변경 등을 편리하게 할수 있다.
[구현클래스]
ArrayList
Vector
LinkedList
[사용예제]
-.list<자료형> 변수명 = new ArrayList<>();
-.add로 하나씩 추가하는 것이 아니라 한번에 값을 추가하기
ArrayList<String> 색상들 = new ArrayList<>(Arrays.asList("black","white"));
//()에 Arrays.asList()넣고 싶은만큼 추가 가능
[주요메서드]
add() : 주어진 객체를 맨 끝에 추가
set() : 주어진 인덱스에 저장된 객체를 주어진 객체로 바꿈
contain() : 주어진 객체가 저장되어 있는지 여부
get() : 주어진 인덱스체 저장된 객체를 리턴
iterator() : 저장된 객체를 한번씩 가져오는 반복자 리텅
isEmpty() : 컬렉션이 비어 있는지 조사
size() : 저되어 있는 전체 객체수를 리턴
clear() : 저장된 모든 객체를 삭제
remove(index) : 주어진 인덱스에 저장된 객체를 삭제
remove(object) : 주어진 객체를 삭제
#Set
[정의]
-. 저장 순서가 유지되지 않고, 중복 객체도 저장하지 못하게 하는 자료 구조 (집합, 주머니)
-. 중복데이터 저장 못하며 같은게 들어오면 덮어쓴다
[구현 클래스]
-.set: HashSet(대표) : 처리 속도가 빠른 set, 가장많이 사용하는 set
LinkedHashSet :순서를 유지하는 set, 어떤 특정 정렬을 통해서 검색하여 저장하는 방법
TreeSet : 자동정렬되는 set , 특정연결을 사용해서 값을 저장하는 추가된 순서대로 유지
[주요메서드]
add() : 추가
remove() : 제거
contains() : 데이터 존재여부 확인
size() : 개수 확인
isEmpty() : 비어있는지 확인
[사용예제]
-.Set<자료형> 셋 = new HashSet<>();
-.HashSet<자료형> 해시셋 = new HasgSet<>();
-.TreeSet 배열에서 한번에 넣기
TreeSet<String> 과일들 = new TreeSet<>(Set.of("키위","사과","딸기"));
//Set.of(" "," "," "," ",)
#Map
[정의]
-.키(key) - 값(value) 한쌍의 집합을 이루는 구조. 키와 값은 모두 객체
-.키는 값에는 숫자,문자,문자열 등 어떤 값이 들어가도 된다.(값 또한 모든 값이 들어갈 수 있음)
-.키는 중복 저장을 허용하지 않고(Set방식), 값은 중복저장가능(List)
-.키가 중복되는 경우, 기존에 있는 키에 해당하는 값을 덮어 쒸움
[구현클래스]
HashMap : 가장 많이 사용
HashTable
LinkedMap :순서를 보장하는 연결이 필요할 때 사용
Properties
TreeMap : 이진 트리로 빠른 검색이 필요할 때 사용
[주요메서드]
-put(key,value) :지정된 키와 값을 맵에 추가, 만약 동일한 키가 이미 존재한다면 이전 값은 새로운 값으로 대체
-get(key):지정된 키에 해당하는 값을 보여줌
-containsKey(key) :맵에 지정된 키가 포함되어 있는지 확인
-containsValue(value) :맵에 지정된 값이 포함되어 있는지 확인
-remove(key): 지정된 키와 해당하는 값을 제거
-Map.Entry<자료형, 자료형>
-Map 인터페이스 안에서 작성된 내부 클래스 Entry : 키와 값의 쌍을 나타냄
-보통은 entrySet() 메서드를 사용해서 키-값 에 대한 정보를 보여주는 모든 키와 값의 쌍을 한번에 보여주지만
-Map.Entry써서 전체에서 하나씩하나씩 꺼내서 보여줌 맵 안에서 각각의 키- 값
-또는 getKey() getValue() 를 사용해서 각각 가져올 수 있기도 함