JAVA
타입 변수
타입 변수
2022.05.04타입 변수 지네릭 클래스를 작성할 때, Object타입 대신 타입 변수(E)를 선언해서 사용. 타입변수란, 지네릭 클래스를 작성할 때, Object타입 대신 타입 변수(E)를 선언해서 사용한다. 예를 들어서, ArrayList클래스에 있는 Ojbect를 전부 타입변수 E로 바꾸는 것이다. 타입변수 E를 선언하고, Object를 전부 E로 바꾼다. 즉, 원래 일반 클래스였는데 지네릭클래스로 바뀌었다. 우리도 사용할 때 지네릭 클래스로 사용해야 한다. 그러니깐, JDK1.5부터 Object를 포함한 클래스는 지네릭 클래스로 바뀌었다고 생각하면 된다. 지네릭 클래스는 타입변수(E)가 있다. 그래서 타입 변수 를 선언해주고, Object대신에 타입변수E를 사용한다. 변수이름은 여러글자를 써도된다. ex)EE, ..
지네릭스란?
지네릭스란?
2022.05.03지네릭스(Generics)란? 컴파일시 타입을 체크해 주는 기능(compile-time type check) - JDK1.5 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여줌 지네릭스란, 컴파일시 타입을 체크해 주는 기능이다. 그동안 컴파일시에 타입체크가 가능하긴 했지만, 한계가 있었다. 그 한계를 넘어서게 해주는 것이 지네릭스이다. 코드를 보면, ArrayList가 있는데, ArrayList는 Object[] 배열을 가지고 있는데, 여기에는 모든 종류의 객체 저장이 가능하다. 그런데 내가 만약, Tv만 저장하고 싶다고 가정해보자. 지네릭스가 있기 전에는, Tv타입이 아니라 다른 타입의 객체를 저장해도 잡아낼 방법이 없었다. 그런데, 지네릭스가 도입되면서 우리가 리스트에 Tv라고 타입을 지정해주고,..
Collections클래스, 컬렉션 클래스 요약
Collections클래스, 컬렉션 클래스 요약
2022.05.03Collections - 컬렉션을 위한 메서드 (static)를 제공 Objects 클래스는 객체를 다루는데에 유용한 메서드들을 제공하고, Arrays 클래스는 배열을 다루는데에 유용한 메서드를 제공한다. 그리고, Collections는 컬렉션을 다루는데 유용한 메서드를 제공한다. 1. 컬렉션 채우기, 복사, 정렬, 검색 - fill(), copy(), sort(), binarySearch() 등 2. 컬렉션의 동기화 - synchronizedXXX() sychronized로 시작하는 메서드들이 있는데, 배열기반 컬렉션중에, 옛날버전인 Vector클래스와 비교적 최신버전인 ArrayList가 있는데, Vector클래스는 동기화 되어있고, ArrayList는 동기화되어있지 않다.(동기화는 13장 쓰레드에서..
HashMap (2)
HashMap (2)
2022.05.03HashMap - 주요 메서드 HashMap은 HashMap()은 생성자를 가지고 있다. HashMap은 해시테이블에 데이터를 저장하는데, 해시테이블 = 배열 + 링크드리스트 이다. HashMap(in initialCapacity)생성자로 배열의 초기용량을 지정해줄 수 있다. HashMap(int initialCapacity, float loadFactor) 생성자로 배열의 초기용량과 용량을 2배증가시킬 loadFactor를 설정 할 수 있다. HashMap(Map m) 생성자는 다른 Map을 HashMap으로 바꿀수 있도록 하는 기능도 제공한다. put(Object key, Object value) 메서드는 key와 value를 묶어서 데이터를 저장할 때 사용한다. putAll(Map m) 메서드는, ..
HashMap (1)
HashMap (1)
2022.05.02HashMap과 Hashtable - 순서 X, 중복(키X, 값O) Map인터페이스를 구현. 데이터를 키와 값의 쌍으로 저장 HashMap과 Hashtable은 둘다 Map인터페이스를 구현한 클래스이다. 데이터를 key와 value의 쌍으로 저장한다. (key, value) Set과 달리 저장순서를 유지하지 않는다. 중복의 경우에는 key는 중복 허용하지 않고, value는 중복을 허용한다. Hashtable은 옛날버전이다. HashMap과 거의 동일하다. 다만, Hashtable은 동기화가 되있고, HashMap은 동기화가 되어있지 않다. 즉, 두 클래스 차이는 동기화 유무에 있다. (자세한 내용은 13장 쓰레드에서 알아보자.) TreeMap은, TreeSet과 같은 특성을 가지고 있다. (이진 탐색 ..
TreeSet (2)
TreeSet (2)
2022.05.02TreeSet - 주요 생성자와 메서드 이번시간에는 TreeSet에 가지고 있는 주요 생성자와 메서드에 대해서 알아보자. 기본적으로 add(), remove(),. size(), isEmpty(), iterator()같은 것들은, Collection인터페이스가 가지고 있는 메서드들인데, 이것들은 다른 클래스들에서도 살펴봤으므로 이번 시간에는 제외하였다. TreeSet이 가지고 있는 특별한 메서드 위주로 보자. 먼저 생성자를 보자. TreeSet(), TreeSet(Collection c), TreeSet(Comparator comp)가 있는데, 여기서 주목해야 할 것은, TreeSet(Comparator comp)이다. Comparator가 하는 일은 비교기준제공이다. 저번 시간에 공부했던 것 처럼, T..