본문 바로가기

반응형

전체 글

(260)
[JAVA] Generics 1. 지네릭스 지네릭스는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하여 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여서 코드를 간결하게 유지할 수 있다. 간단하게 얘기하여 ArrayList 와 같은 컬렉션 클래스에 들어갈 수 있는 객체의 종류를 미리 명시해두어 번거로운 형변환을 줄여준다. 2. 지네릭 클래스의 선언 지네릭 타입은 클래스와 메서드에 선언할 수 있는데, 다음과 같이 사용할 수 있다. class Box { T element; void setElement(T element) { self.element = element; } T getElement() { return element; } } 위의 예제에서..
[Python] module, package, library 1. module 코드를 잘 구성하기 위해서는 서로 연관이 있는 코드들을 모아서 그룹화해야한다. 모듈은 일반적으로 하나의 .py 파일에 저장된 연관된 코드 더미를 말한다. 모듈에는 함수, 클래스, 변수 또는 실행 가능한 코드 등을 선택하여 정의할 수 있다. 이렇게 저장된 모듈들을 애플리케이션에서 사용하기 위해서는 import 구문을 사용하여 해당 모듈을 가져와야 합니다. 모듈을 import 한 후에 모듈안에 있는 context 들을 module.context, module.function() 등의 문법으로 사용할 수 있다. 모듈에 있는 특정 요소만 사용하고 싶은 경우에는 from module import item 과 같은 형식으로 사용하여 모듈 전체가 아니라 해당 요소만 import 할 수 있다. # h..
[Python] copy 1. copy 파이썬에서 대입문을 통해 객체를 입력하는 경우에는 객체를 복사하는 것이 아니라 객체의 주소를 참조하도록 바인딩해준다. 만약 복사하려는 객체가 가변객체인 경우에는 복사를 통해서 복사본은 수정하고 원본은 유지하도록 하는 방식이 필요한 경우가 있다. copy 모듈은 기본적인 얕은 복사와 깊은 복사 연산을 제공해준다. 2. interfaces - copy.copy(x): 객체 x의 얕은 복사를 반환한다. - copy.deepcopy(x[. memo]): 객체 x의 깊은 복사를 반환한다. 얕은 복사와 깊은 복사의 차이는 리스트나 클래스 인스턴스와 같이 객체 내부에 또다른 객체를 포함하고 있는 경우에 나타난다. 얕은 복사는 새로운 객체를 생성하여 내부에 원본의 객체들과 연결된 참조를 저장하여 반환한다..
[JAVA] Collections 1. Collections Collections 는 컬렉션과 관련된 메서드를 제공한다. fill(), copy(), sort(), binarySearch() 등의 메서드는 두 클래스에 모두 포함되어 있으며 같은 기능을 한다. - 컬렉션의 동기화 멀티쓰레드 프로그래밍에서는 하나의 객체를 여러 쓰레드가 동시에 접근할 수 있다. 그렇기 때문에 데이터의 일관성, consistency 를 유지하기 위해 공유되는 객체에 동기화, synchronization 이 필요하다. Vector 와 Hashtable 과 같은 구버전 클래스들은 자체적으로 동기화 처리가 되어있다. 그렇기 때문에 멀티쓰레드 프로그래밍이 아닌 경우에는 불필요한 기능이 되어 성능에 불리하다. 이후에 추가된 ArrayList 와 HashMap 과 같은 ..
[JAVA] Properties Properties Properties 은 Hashtable 은 상속받아 구현한 것으로 Hashtable 은 키, 값을 (Object, Object) 형태로 저장하는데 Properties 는 (String, String) 의 형태로 저장하는 컬렉션 클래스이다. 주로 애플리케이션의 환경설정과 관련된 속성, property 를 저장하는데 사용되며, 데이터를 파일로부터 읽고 쓰는 기능을 제공한다. 메서드 설명 Properties() Properties 객체를 생성한다. Properties(Properties defaults) 지정된 Properteis 에 저장된 목록을 가진 Properties 객체를 생성한다. String getProperty(String key) 지정된 키의 값을 반환한다. String g..
[JAVA] TreeMap TreeMap TreeMap 은 이진검색트리의 형태고 키, 값 데이터를 저장하는 컬렉션 클래스이다. 이진검색트리로 구성되어 있기 때문에 검색과 정렬에 적합하다. 기본적인 검색에서는 HashMap 이 TreeMap 보다 유리하지만 범위검색이나 정렬이 필요한 경우에는 TreeMap 을 사용하는 것이 더 유리하다. 메서드 설명 TreeMap() TreeMap 객체를 생성 TreeMap(Comparator c) 지정된 Comparator 를 기준으로 정렬하는 TreeMap 객체를 생성 TreeMap(Map m) 주어진 Map에 저장된 모든 요소를 포함하는 TreeMap 을 생성 TreeMap(SortedMap m) 주어진 SortedMap 에 저장된 모든 요소를 포함하는 TreeMap 을 생성 Map.Entry..
[JAVA] HashSet, TreeSet 1. HashSet HashSet 은 Set 인터페이스를 구현한가장 대표적인 컬렉션이다. HashSet 에 데이터를 저장할 때는 add() 또는 addAll() 메서드를 사용하는데 만약에 중복되는 데이터가 이미 존재하는 경우에는 false 를 반환하여 데이터 저장이 실패했다는 것을 알린다. ArrayList 와 같이 List 인터페이스를 구현한 컬렉션과 달리 HashSet 은 저장순서를 저장하지 않는다. 저장순서를 유지하고자 한다면 LinkedHashSet 을 사용해야 한다. 메서드 설명 HashSet() HashSet 객체 생성 HashSet(Collection c) 컬렉션 c의 데이터를 포함하는 HashSet 객체를 생성 HashSet(int initialCapacity) 주어진 값을 초기용량으로 하..
[JAVA] Comparator, Comparable 1. Comparator, Comparable Comparator 와 Comparable 은 모두 인터페이스로 컬렉션을 정렬하는데 필요한 메서드를 정의하고 있다. Comparable 을 구현하고 있는 클래스들은 같은 타입의 인스턴스끼리 서로 비교할 수 있는 클래스들이며, 기본적으로 오름차순으로 정렬하도록 구현되어 있다. 그래서 Comparable 을 구현한 클래스는 모두 비교가 가능하다는 것을 알 수 있다. public interface Comparator { int compare(Object o1, Object o2); boolean equals(Object obj); } public interface Comparable { public int compareTo(Object o); } compare()..

반응형