오늘 공부한 내용은 Collection framework와 Collections 에 대한 내용이다.
사실 알고리즘문제를 풀면서 Collections.sort를 활용한 정렬에 대한 문제를 풀면서
모르는 부분이 있어서 정리를 해보았다.
먼저 , Collection framework는 Collection이라고도 하는데 , 이것은 java.util에 있는
interface이다. 흔히 우리가 쓰는 Vector , ArrayList , LinkedList 등의 상위 인터페이스다.
여기서 한가지 중요한 포인트는 Vector와 ArrayList에 대한 포인트다.
둘 다 순서가 있는 리스트로써 유사한 점이 많지만 멀티쓰레딩 환경에서 Vector는
동기화를 지원하고 ArrayList는 동기화가 되지 않는 다는점이 있다.
이어서 , Collections 는 java.util에 있는 class 이다. List , Map , Set을 field로 갖고 있으며
여러가지 Collection에 대한 operation을 수행 할 static method들을 갖고 있다.
가장 많이 사용하는 sort함수 등이 있으며 , binarySearch등 다양한 method 들이 있다.
Collections에서 또 한가지 짚고 넘어갈 부분이 있는데 , 많이 사용되는
Collections.sort 함수는 두가지로 overriding되어 있는데 한가지는 단순히 collection들을
인자로 받고 그 element들이 기본 object일 때인데 , 이 때는 특별한 조건을 설정하지
않아도 자동적으로 sort가 가능해진다.
그러나 ! collection의 element들이 user define element라면 new Comparator를 사용하여
sorting 조건을 정해주어야만 한다 !!! (앞 전에 Comparator 게시글 참조)
정리하자면 , Collection은 interface로써 List , Map , Set에 대한 interface이고 ,
Collections는 class로써 Collection을 다루는 다양한 static method 들을 모아놓은 class이다
댓글 없음:
댓글 쓰기