본문 바로가기

자바의정석

Java Collections 클래스 컬렉션(collection)을 위한 메서드(static) 제공 1. 컬렉션 채우기, 복사, 정렬, 검색 - fill(), copy(), sort(), binarySearch() 등 2. 컬렉션의 동기화 - synchronized...() 3. 변경불가(readOnly) 컬렉션 만들기 - unnodifiable...() 4. 싱글톤 컬렉션 만들기 - singletone...() 5. 한 종류의 객체만 저장하는 컬렉션 만들기 - checked...() 더보기
Java HashMap, Hashtable 1. Hashtable - Vector와 ArraysList의 관계같이 HashMap의 예전것으로 보면됨 -> HashMap 사용 권장 2. HashMap - 해싱(hasing) 기법으로 데이터 저장, 데이터가 많아도 검색이 빠름 - Map인터페이스를 구현, 데이터를 키와 값의 쌍으로 저장 키(key): 컬렉션 내의 키 중에서 유일 값(value): 키와 달리 데이터 중복 허용 3. 해싱(hasing) - 해시함수(hash function)를 이용해서 데이터를 저장하고 읽어 오는 것 - 해시함수로 해시테이블(hash table)에 데이터를 저장, 검색 4. 해시 함수(hash fuction) - object.hash()메소드 사용 - 같은 키에 대해 항상 같은 해시코드 반환(서로 다른 키일지라도 같은 값.. 더보기
Java 컬렉션(Collection) - Set(집합) HashSet, TreeSet 복습! - Set인터페이스는 Collection인터페이스를 상속받음 - 순서없고, 중복불가(같이 Collection을 상속받은 List는 순서있고, 중복 가능) 1. HashSet - Set 인터페이스를 구현한 대표적인 컬렉션 클래스 - 객체를 저장하기전에 기존에 같은 객체가 있는지 확인(중복 객체 삭제) Set set = new HashSet(); for(int i=0; i < objArr.length; i++) { Boolean setCheck = set.add(objArr[i]);// HashSet에 objArr의 요소들을 저장 System.out.println(objArr[i]+"="+setCheck); } // HashSet에 저장된 요소 출력 System.out.println(set); // .. 더보기
Java Comparable, Comparator 인터페이스 Comparable과 Comparator는 객체 정렬에 필요한 메서드(정렬 기준 제공)를 정의한 인터페이스 1. Comparable - java.lang 패키지 - 기본 정렬 기준을 구현하는데 사용 public interface Comparable { public int compareTo(T o); // 주어진 객체(o)를 자신과 비교 // 반환값은 int형이지만 실제로 비교하는 객체가 같을 시 0, 비교하는 값보다 작으면 음수, 크면 양수 } - Comparable을 구현하는 클래스는 같은 타입의 인스턴스끼리 서로 비교할 수 있는 Integer, String, Date, File 등이 있음 - 기본적으로 오름차순으로 구현됨(정렬) 2. Comparator - java.util 패키지 - 기본 정렬 기준.. 더보기
Java Arrays 클래스(Arrays Class) 1. Arrays 클래스 - 배열을 편리하게 다루기 위한 static 메서드 제공 2. Arrays클래스의 메서드 종류 - 같은 기능의 메서드가 배열의 타입만 다르게 오버라이딩 되어 있음 1) 배열의 복사 - copyOf(배열명): 배열 전체 복사 - copyOfRange(배열명, 시작 인덱스, 끝 인덱스+1): 배열의 일부를 복사해서 새로운 배열을 만들어 반환, 지정된 범위의 끝은 포함하지 않음 int[] arr = {0,1,2,3,4}; int[][]arr2D = {{11,12,13}, {21,22,23}}; // 배열의 복사 copyOf() int[] arr2 = Arrays.copyOf(arr, arr.length); // arr 배열에서, arr배열 길이만큼 int[] arr3 = Arrays... 더보기
Java Iterator, ListIterator, Enumeration 인터페이스 - 컬렉션에 저장된 데이터를 접근하는데 사용되는 인터페이스 - 컬렉션(List, Set)에 저장된 요소들을 읽어오는 방법을 표준화 한 것 👉🏻 표준화로 코드의 일관성을 유지하여 재사용성을 높임 1. Iterator - 컬렉션에 iterator()를 호출하여 Iterator를 구현한 객체를 얻어 사용 - Iterator인터페이스의 메서드 메서드 설명 boolan hasNest() - 읽어 올 요소가 남아있는지 확인 - 있으면 ture, 없으면 false 반환 Object next() - 다음 요소 읽어오기 - next()를 호출 전 hasNext()를 호출하여 읽어 올 요소가 있는지 확인 void remove() - next()로 읽어 온 요소 삭제 - next() 호출 후 romove()를 호출(선택적 .. 더보기
Java 스택과 큐 1. 스택(Stack) - LIFO(Last In First Out) 구조로 마지막에 저장(push)된 것을 제일 먼저 꺼냄(pop) - 순차적으로 저장하는 스택은 배열(ArrayList)로 저장하는 것이 효율적 - 스택(Stack) class의 메서드 메서드 설명 boolean empty() 스택이 비어있는지 알려줌 Object peek() - 스택의 맨 위에 저장된 객체 반환 - pop()과 달리 스택에서 객체를 꺼내지는 않음(비었을 때는 EmptyStackException 발생) Object pop() 스택의 맨 위에 저장된 객체를 꺼냄(비었을 때는 EmptyStackException 발생) Object push(Object item) 스택에 객체(item)저장 int search(Object o).. 더보기
Java 컬렉션 프레임워크(collections framework) 1. 컬렉션 프레임워크(collections framework) 1) 컬렉션(collection) - 여러 객체(데이터)를 모아 놓은 것 2) 프레임워크(framework) - 표준화, 정형화된 체계적인 프로그래밍 방식 3) 컬렉션 프레임워크(collections framework) - 컬렉션(다수의 객체=데이터)을 다루기 위한 표준화된 프로그래밍 방식 - 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스 제공 - java.util 패키지에 포함(JDK1.2부터 제공) 2. 컬렉션 프레임워크의 핵심 인터페이스 인터페이스 특징 List - 순서가 있는 데이터 집합 - 중복 허용 - 예시: 대기자 명단 구현 클래스: ArrayList, LinkedList, Stack, Vector Set - 순서가 없는 .. 더보기