일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- List
- 개발자 면접
- notifychanged
- pod install
- SwiftUI
- DevelopmentRegion
- ios
- url 관찰
- GeometryReader
- 상단 탭바
- oberve url
- detect url
- UIPresentationController
- Android
- url 추적
- transformation.map
- UIViewControllerTransitioningDelegate
- scrolling tab
- swift #swift keychain #keychain 사용법
- convert base64
- base64 변환
- ViewBuilder
- 스크롤 탭
- Side Menu
- DataBinding
- development language
- Swift Package Manager
- 기존 앱
- Tuist
- swift
- Today
- Total
버그 잡이
Java Collections - List, Set, Map 본문
각각의 언어들은 다양한 자료구조를 쉽게 사용할 수 있는 자체적인 라이브러리들을 제공해준다.
그래서 실제 개발시에는 자료구조를 "어떻게 구현하지?"에 초점을 맞추기 보다 "어떤 상황에 어떤 자료구조를 쓰지?"에 초점을 맞추는 것이 보다 효율적인 질문일 수 있다.
Java에서는 자료구조에 대한 어떤 라이브러리들을 제공해주는지, 또 이들은 각각 어떤 상황에 사용할 수 있는지 살펴보자.
1. List
- 리스트는 Index를 사용해서 특정 원소를 조회하고 삽입할 수 있는 것이 특징인 자료구조이다.
- 순서가 있고 데이터의 중복을 허용한다.
*ArrayList
- 자료에 대한 조회에 있어서 상대적으로 높은 성능을 보인다.
*LinkedList
- 데이터의 추가, 삭제가 빈번한 경우 유리하다.
#어디에 쓰이는가?
- 목록 데이터
ex) android recyclerView에 들어가는 목록 자료
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder> {
private ArrayList<String> mData = null ;
....
}
2. Set
- 수학의 "집합"과 같은 자료구조
- 중복을 허용하지 않는다.
#어디에 쓰이는가?
- 중복 없는 목록을 만들고 싶을때
ex) 카드 거래 내역을 보고 내가 거래한 상점들의 목록을 뽑고 싶을때
- 집합의 연산이 필요한 곳(차집합, 교집합, 합집합)
3. Map
- Key : Value 쌍으로 연관지어 저장하는 자료구조
*HashMap
- Map 인터페이스를 구현하기 위해 해시테이블을 사용한 클래스
- 중복을 허용하지 않고 순서를 보장하지 않음
(HashTable : 해시함수를 거쳐 만들어진 key와 해시함수를 거치기 전 데이터인 value를 묶어 함께 저장하는 자료구조)
#어디에 쓰이는가?
- key, value의 대응 구조
ex) 클라이언트에서 http post 방식으로 서버에 요청을 보낼때
//*retrofit service
@FormUrlEncoded
@POST("getProfile")
Call<YourResponseObject> getProfile(@FieldMap HashMap<String, String> data);
//hashmap 객체 생성 후 메서드에 넣어주기
HashMap<String, String> map = new HashMap<>();
map.put("token", "yourtoken");
map.put("yourvariable", "yourvariable");
- DB는 기본적으로 Key:Value 값으로 값을 표현한다.
(위 예서 든 예시는 제가 직접 개발하면서 사용해본 단편적인 예시들입니다. 더욱 다양한 활용 방법들이 있으니
보다 깔끔한 코딩, 빠른 처리를 위해서 위와 같은 collections의 응용을 다양하게 고민해봅시다!)
'CS > 자료구조' 카테고리의 다른 글
[자료구조] Heap이란? (0) | 2020.06.22 |
---|---|
[자료구조] 해시테이블(HashTable)이란 무엇인가? +HashMap (0) | 2020.06.19 |
[자료구조] 배열과 리스트 +ArrayList, LinkedList (0) | 2020.06.08 |