Set
-
람다와 스트림 - 스트림 만들기백엔드/자바 2021. 11. 9. 21:49
2021.09.15 - [백엔드/자바] - 람다와 스트림 - 스트림의 정의와 특징 람다와 스트림 - 스트림의 정의와 특징 스트림의 정의와 그 필요성 한마디로 말하면 컬렉션이나 배열을 다루기 쉽게 만든 것이다. 기존의 컬렉션 프레임웍을 보면 위와 같이 List, Set, Map의 인터페이스로 구성된 것을 알 수 있다. 이 중 sgcomputer.tistory.com 이전 파트에서는 스트림의 정의와 특징에 대해서 알아봤다. 간단히 복습해보자면 스트림이란 컬렉션의 데이터를 쉽게 다루기 위해 만들어진 인터페이스다. List든 Set이든 Map이든 형태에 구애받지 않고 데이터만 뽑아서 스트림 속에 넣고 가공할 수있다. 그렇다보니 스트림은 원본 데이터에 영향을 주지 않고 데이터만 손쉽게 뽑아 가공이 가능하다. 물론..
-
컬렉션 Set - TreeSet백엔드/자바 2020. 8. 16. 06:08
TreeSet이란? Set의 인터페이스를 구현한 컬렉션 클래스다. 이진 탐색 트리(binary search tree)라는 자료구조 형태로 데이터를 저장한다. 그리고 당연히 Set 인터페이스를 구현했기에 중복을 허용하지 않는다. 또한 이진검색트리 구조에 맞게 정렬된 상태로 데이터가 저장되므로 저장 순서를 유지하지도 않는다. 즉 내부적으로 데이터 정렬은 가능하지만, 사용자의 데이터 입력 순으로 저장 순서가 유지되진 않는다. 이진 트리(binary tree)란? 이진 트리란 루트에서 시작하여 한 개 부모 노드에 최대 2개의 자식 노드를 붙일 수 있게 설계된 데이터를 저장할 수 있는 자료 구조를 말한다. 그림으로 보는게 더 이해하기 쉽다. 루트를 기준으로 여러 개의 요소(노드, node)가 서로 연결된 구조다...
-
컬렉션 Set - HashSet백엔드/자바 2020. 8. 16. 05:55
HashSet이란? Set 인터페이스를 구현한 가장 대표적인 컬렉션이다. List와 반대로 저장 순서를 보장하지 않고, 중복을 허용하지 않는다. 만약 Set인터페이스에 속한 클래스를 쓰면서 저장 순서를 유지하고 싶다면, LinkedHashSet을 쓰면 된다. HashSet과 TreeSet의 차이 Set 인터페이스에서는 HashSet과 TreeSet이 가장 대표적인 클래스다. HashSet의 Set 인터페이스의 특성대로 순서를 보장하지 않고, 중복을 허용하지 않는다. TreeSet은 범위 검색, 정렬에 특화된 클래스다. 같은 자료를 담더라도 TreeSet은 데이터 범위 검색, 정렬에서 장점을 가진다. 하지만 TreeSet은 HashSet에 비해 데이터의 추가, 삭제가 느린 단점이 있다. 그래서 본인의 용도..
-
컬렉션 프레임워크(collection framework)백엔드/자바 2020. 8. 16. 02:21
컬렉션 프레임워크의 필요성 자바를 배우기 시작하면 데이터 관리를 위한 기능인 배열을 배우게 된다. 하지만 배열은 사용하다보면 여러 면에서 한계가 드러난다. 그 중에서 가장 큰 한계 중 하나는 배열을 선언시 크기를 미리 지정해야한다는 것이다. 예를 들어 위와 같이 정수형 데이터 3개를 넣을 수 있는 배열을 선언했다고 가정해보자. 여기서 3개의 정수형 데이터까지는 정상적으로 입력되지만, 4개부터는 컴파일 오류를 발생시킨다. 자바를 이용해 계속 개발하다보면 배열의 크기를 미리 가늠할 수 없는 경우가 더 많다. 그럴때마다 별도의 처리를 해주는 등의 불편함이 발생한다. 또한 배열은 단 한가지 타입의 데이터만 입력이 되므로 이러한 점도 불편함을 발생시킨다. 이러한 배열의 한계로 인해 데이터를 다루기 위한 컬렉션 프..
-
자료형에 따른 활용법(함수 등) - 집합자료(set)파이썬 2020. 7. 1. 05:51
1. 집합 자료형(set) 만들기 : set ( x ) set를 만들기 위해서는 set( ) 함수를 써서 요소들을 넣어주면 만드는 것이 가능하다. >>> a = set([1,2,3]) >>> a {1, 2, 3} 2. 집합 자료형의 특징 *집합 자료형의 가장 큰 특징은 중복을 허용하지 않는 것과 순서가 없다는 것이다. 아래 예시와 같이 set()함수를 써줄 경우 그 안에 있는 요소들은 중복이 사라진다. >>> a = set("hello") >>> a {'h', 'o', 'l', 'e'} 3. 집합 자료형으로 인덱싱 하는 법 * 집합 자료형은 앞서 말했듯 순서가 없기 때문에 인덱싱이 불가능하다. * 인덱싱을 위해서 리스트 혹은 튜플로 변경하여 인덱싱을 해야한다. >>> a = set([1,2,3,4,5])..