본문 바로가기

반응형

전체 글

Java - Generics 란 지네릭스(Generics) 란? - 컴파일시 타입을 체크해 주는 기능 - JDK1.5 - 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여줌 - 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해진다. import java.util.ArrayList; public class GenericTest { public static void main(String[] args){ ArrayList list = new ArrayList(); list.add(10); list.add(20); list.add("30"); // String Integer i = (Integer) list.get(2); // 컴파일 OK System.out.println(list); } } - 컴파일러에서는 에러를 찾지 못한다. 실행.. 더보기
Java - Collections의 유용한 static 메서드 1. 채우기 복사 검색 정렬 fill(), copy(), sort(), binarySearch() 2. 컬렉션 동기화 - synchronizedXXX() static Collection synchronizedCollection(Collection c) static List synchronizedList(List list) static Set synchronizedSet(Set s) static Map synchronizedMap(Map m) static SortedSet synchronizedSortedSet(SortedSet s) static SortedMap synchronizedSortedMap(SortedMap m) 3. 변경불가 컬렉션(readonly) - unmodifiableXXX() 변경불.. 더보기
Java - HashMap과 Hashtable HashMap과 Hashtable - 순서 X, 중복(키 X, 값 O) - Map 인터페이스를 구현. 데이터를 키와 값의 쌍으로 저장 - HashMap은 동기화 x Hashtable은 동기화 o - HashMap은 Hashtable의 신버전 HashMap - Map 인터페이스를 구현한 대표적인 컬렉션 클래스 - 순서 유지하려면 LinkedHashMap클래스를 사용 - 해싱 기법으로 데이터 저장, 데이터가 많아도 검색이 빠르다. TreeMap - 범위 검색과 정렬에 유리한 컬렉션 클래스 - HashMap 보다 데이터 추가, 삭제에 시간이 더 걸림 해싱(Hashing) - 해시 함수로 해시테이블에 데이터를 저장 검색 - 해시 테이블은 배열과 링크드리스트가 조합된 형태 링크드 리스트 > 변경하기 쉽게 배열 >.. 더보기
Java - TreeSet 이진 탐색 트리(binary search tree)로 구현. 범위 탐색과 정렬에 유리 이진 트리는 모든 노드가 최대 2개의 하위 노드를 갖음 각 노드가 트리 형태로 연결(LinkedList의 변형) 이진 탐색 트리 - 부모보다 작은 값을 왼쪽 큰 값을 오른쪽에 저장 - 데이터가 많아질 수록 추가, 삭제에 시간이 더 걸림 TreeSet 데이터 저장 - 지속적으로 비교하면서 추가 TreeSet 주요 메서드 - TreeSet() TreeSet(Collection c) TreeSet(Comparator c) : 비교 기준 제공 - Object first() : 가장 첫번째 (오름차순 일 때 가장 작은것) - Object last() : 가장 마지막 (오름차순 일 때 가장 큰것) - Object ceiling(O.. 더보기
Java - HashSet HashSet - 순서 X 중복 X - Set인터페이스를 구현한 대표적인 컬렉션 클래스 - 순서를 유지하려면 LinkedHashSet 사용 TreeSet - 범위검색과 정렬에 유리한 컬렉션 클래스 - HashSet보다 데이터 추가, 삭제에 시간이 더 걸림 HashSet 메서드 - HashSet() HashSet(Collection c) HashSet(int initialCapacity) HashSet(int initialCapacity, float loadFactory) : loadFactory이 0.8 일때 80퍼센트 차면 용량 두배 증가 - boolean add(Object o) / boolean addAll(Collection c) : 추가 - boolean remove(Object o) / boo.. 더보기
Java - Comparator와 Comparable 규칙! 음수를 리턴하면 자리 바꿈. 0 또는 양수를 리턴하면 자리 안바꿈 그래서 오름차순 할때 : 오른쪽이 크면 음수 (오른쪽이 앞쪽 인덱스) 내림차순 할때 : 왼쪽이 크면 음수 (오른쪽이 앞쪽 인덱스) 1. Comparator 인터페이스 구현 import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; class Student{ String name; int math; int science; Student(String name, int math, int science){ this.name = name; this.math = math; this.science = scie.. 더보기
Java - Arrays 배열을 다루기 편리한 메서드(static) 제공 package collection; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ArraysTestMain { public static void main(String[] args){ int[] arr = {0,20,50,2,3,4,5,6,7,8,9,30}; String[] arrStr = {"aa","dd","AB"}; // 1. toString System.out.println(Arrays.toString(arr)); System.out.println(Arrays.toString(arrStr)); // 2. 복사 copyOf copyOfRan.. 더보기
Java - Iterator, ListIterator, Enumeration 컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스 Iterator, ListIterator - ListIterator은 Iterator의 접근성을 향상시킨 것(단방향 > 양방향) - boolean hasNext() : 읽어 올 요소가 남아있는지 확인한다. 있으면 true, 없으면 false를 반환한다. - Object next() : 다음 요소를 읽어온다. hashNext()를 확인하고 사용 하는 것이 좋다. package collection; import java.util.*; public class CollectionMain2 { public static void main(String [] args){ // Iterator은 Collection의 메소드이기 때문에 // 타입을 Collection.. 더보기

반응형