-
[자료구조] List, Set, Map 차이/ StringBuffer StringBuilder 차이Computer/알고리즘&자료구조 2017. 10. 13. 12:45
String StringBuffer StringBuilder 차이점(http://ooz.co.kr/298)
String - 불변, 추가되는 경우 새로운 객체가 만들어져서 복사되게 하고 그 새로 만들어진 객체를 참조하게 함. Java 가비지컬렉션으로 원래 있던 놈은 수거
StringBuffer - 저장 공간 유연, 멀티 스레드 환경에서 사용하면 좋음, 동기화를 지원하기 때문에
StringBuilder - 저장 공간 유연, 단일 스레드 환경에서 사용하면 좋음, 동기화 지원 안함. jdk 1.5 이후로는 String도 StringBuilder 지원함
List, Set, Map 차이(http://j2yes.tistory.com)
Set - 객체 중복 허용하지 않는다. (집합이다)
List - 인덱싱, 중복 허용
Map - 키와 데이터 값을 저장
- ArrayList vs Vector(http://seeit.kr/36)
ArrayList는 동기화를 보장하지 않고, Vector는 동기화를 보장한다.
ArrayList는 동기화를 보장하지 않는 대신 가볍고, 웹의 경우 서버가 동기화를 보장해 주므로 ArrayList를 사용하면 된다.
List list = Collections.synchronizedList(new ArrayList()); 이렇게 해주면 Vector처럼 이용.
제공되는 함수는 동일하다. get, add, remove, contains...
추가 삭제를 할 경우, 데이터를 더 큰 배열에 혹은 작은 배열에 복사하는 방식이므로 성능이 매우 떨어진다.
Vector의 경우 용량이 다 차면 두배로 크기가 늘어남.- LinkedList vs (ArrayList, Vector)
LinkedList는 객체의 추가 삭제가 많을 때 유리하다.
ArrayList와 Vector는 데이터 항목 검색이 많을 때 유리
LinkedList로 Stack과 Queue 구현이 가능하다
- HashMap과 HashSet의 차이 (http://plaboratory.org/archives/1638)
Set과 Map의 차이..
- 정리 (출처 : http://kscho.tistory.com)
'Computer > 알고리즘&자료구조' 카테고리의 다른 글
[자료구조] 트리(Tree)란? (미완) (2) 2017.11.16