본문 바로가기
Java/알고리즘

알고리즘 공부(2) - 자료구조(리스트,세트,맵)

by 티코딩 2023. 10. 24.

ㅇ 리스트(List)

ㅁ 리스트의 특징

- 배열이 가진 인덱스를 버리고 빈틈없는 데이터의 적재를 취함

- 순서가 있는 데이터의 모임

- 빈 엘리먼트x

- 데이터 갯수가 정해져있음

- ArrayList, LinkedList, Vector

 

ㅁ 리스트의 메서드

List<String> l = new ArrayList<>();	//길이를 안정하면 기본 저장용량 10으로 생성
l.add("김");
l.add("태");
l.add("형");
l.remove("김");	//"김" 삭제
l.remove(0);	//"김"이 사라져서 "태"가 0번이 됨. "태" 삭제
System.out.println(l.size());	// "형" 만남아서 1이 출력됨.

ㅇ 세트(Set)

ㅁ 세트의 특징

- 저장 순서가 유지 되지 않음

- 중복 저장 불가능

- 수학의 집합같은 개념

- HashSet, LinkedSet(중복허용x, 하지만 add()순서대로 저장됨), TreeSet(오름차순으로 값을 정렬)

 

 

ㅁ 세트의 메서드

Set<String> hs = new HashSet<>();
hs.add("a");
hs.add("b");
hs.add("c");
System.out.println(hs.size());	//3 출력
Iterator<String> iter = set.iterator();
while(iter.hasNext()){
	System.out.println(iter.next());
    }

세트는 삽입시 순서가 없어서 Iterator를 통해 가져와야 함. iterator로 값을 담은후 .next로 하나씩 뽑아내야한다.

ㅇ 맵(Map)

ㅁ 맵의 특징

- 다른 컬렉션과 다르게 key-value 방식을 사용함 (key는 value를 찾기 위한 이름의 역할)

- 요소의 저장 순서 유지x

- key 중복허용x, value 중복허용o

 

ㅁ 맵의 메서드

HashMap<Integer, String> map = new HashMap<String, String>();
map.put(1, "김");	//키,값을 집어넣는 메서드
map.put(2, "태");
map.put(3, "형");
System.out.println(map.get(1));	//"김 출력"
System.out.println(map.containsKey(3); //3이라는 키가 있으니, true 출력
System.out.println(map.remove(2));	//2에해당하는 "태" 삭제하고 "태"출력
System.out.println(map.size()); 	//2삭제됐으므로 길이는 2

예시로 든 HashMap 말고도 HashTable, TreeMap이 있다.

 

'Java > 알고리즘' 카테고리의 다른 글

while문의 사용에 익숙해져보자  (0) 2023.10.25
Lv1로 쉬어가기 (5문제)  (0) 2023.10.25
k진수에서 소수 개수 구하기  (0) 2023.10.24
알고리즘 공부(1) - 자료구조(스택,큐)  (0) 2023.10.23
타겟넘버  (1) 2023.10.20