목록Java/Java Basic 19
Formoat's Open Blog

인터페이스 구현 클래스 특징 Map HashMap, Hashtable, LinkedHashMap, Properties, TreeMap 키와 값으로 구성, 키와 값은 모두 객체이고 키는 중복(X), 값은 중복(O) Map.Entry라는 키와 값을 갖는 객체를 생성해 컬렉션에 저장하는 구조 1. HashMap 키와 값으로 구성되어 있으며 키는 중복이 허용되지 않는다. Set과 마찬가지로 동등 객체 비교를 위해 키 객체의 경우엔 hashCode() 메소드와 equals() 메소드가 재정의 되어 있어야 한다. 키 타입은 주로 String을 사용한다. 2. Hashtable HashMap과 동일한 구조로 이루어져 있다. 차이점은 List의 Vector와 같이 스레드 동기화(synchronized)가 되어있어 ..

인터페이스 구현 클래스 특징 Set HashSet, LinkedHashSet, TreeSet 순서 유지(X), 중복 저장(X), 집합에 비유됨, 하나의 null값 저장 가능 1. HashSet 요소들을 순서 없이 저장하고, 중복 저장하지 않는다. Set의 중복 개념은 꼭 같은 인스턴스를 의미하지 않는다. 다른 인스턴스라고 하더라도 동등한 객체라면 중복으로 판단해 저장하지 않는다. 동등한 객체인지를 판별하기 위해서 Object 클래스에서 상속받는 hashCode() 메소드와 equals() 메소드를 이용하게 되는데, 먼저 hashCode() 메소드를 이용해 두 객체의 해시코드가 같은지 판별한 뒤 만약 해시코드가 같다면 equals()메소드를 이용해 두 객체를 비교해 최종적으로 동등한 객체인지 여부를 판단한..

인터페이스 구현 클래스 특징 List ArrayList, Vector, LinkedList 순서 유지, 인덱스로 관리, 중복해서 객체 저장 가능 1. ArrayList 인덱스를 이용해 요소들을 관리한다는 점은 배열과 유사하다. 하지만 배열과 달리 저장 공간이 부족할 경우 자동으로 크기가 늘어난다는 점이 다르다. 용량을 특정하지 않을경우 기본값은 10이다. 요소들은 0번 인덱스부터 차례로 저장이 되고, 특정 인덱스의 요소를 제거할 경우 해당 인덱스의 바로 뒷부분에 저장된 요소부터 한칸씩 앞으로 이동한다. 반대로 특정 인덱스에 요소를 추가하는 것도 가능하다. 이도 마찬가지로 인덱스 요소부분부터 한칸씩 뒤로 이동한다. 이 때문에 많은 데이터를 특정 인덱스에 추가/삭제할 경우 ArrayList가 아닌 Linke..

2019/09/04 - [Java] - 컬렉션 - List 2019/09/04 - [Java] - 컬렉션 - Set 2019/09/04 - [Java] - 컬렉션 - Map 2019/09/04 - [Java] - 컬렉션 - Tree 2019/09/04 - [Java] - 컬렉션 - Stack, Queue 1. 컬렉션 프레임워크 란? 1) 다수의 데이터(객체)를 보다 쉽고 효과적으로 처리할 수 있는 클래스의 집합/라이브러리 2) 크게잡아 List, Set, Map 3가지 인터페이스로 정의되어있고 이를 상속, 구현하는 클래스, 인터페이스가 있다. 3) 기존의 배열이 가지고 있던 문제점을 해결하기 위해 만들어졌다. # 배열이 가지고 있던 문제점 (1) 배열 생성시 배열의 크기를 정해야 하는데 크기가..

1. Predicate 1) 매개값을 조사해 true / false 형식으로 반환하는 함수적 인터페이스 2) 매개값을 조사하는 testXXX() 메소드를 가지고 있다. 3) 반환타입은 모두 boolean 타입으로 고정 되어 있다. Interface Name Abstract Method Remarks Predicate boolean test(T t) 객체 T를 조사 BiPredicate boolean test(T t, U u) 객체 T와 U를 비교 조사 DoublePredicate boolean test(double value) double 값을 조사 IntPredicate boolean test(int value) int 값을 조사 LongPredicate boolean test(long value)..

1. Operator 1) 매개값과 반환값이 모두 있는 함수적 인터페이스 2) 매개값과 반환값이 모두 있는 applyXXX() 메소드를 가지고 있다. 3) 이들 메소드는 매개값을 이용해 연산후 동일한 타입으로 결과를 반환한다. 4) Function과 다른점은 매개값과 반환값의 타입이 같다는 것이다. Interface Name Abstract Method Remarks BinaryOperator T apply(T t1, T t2) 두 개의 T 연산 후 반환 UnaryOperator T apply(T t) 하나의 T 연산 후 반환 DoubleBanaryOperator double applyAsDouble(double value1, double value2) 두 개의 double 연산 후 반환 Double..

1. Function 1) 매개값과 반환값이 모두 있는 함수적 인터페이스 2) 매개값과 반환값이 모두 있는 applyXXX() 메소드를 가지고 있다. 2) 이들 메소드는 매개값을 이용해 연산하고 다른타입으로 결과를 반환하는 역할을 한다. 4) Operator와 다른점은 매개값과 반환값의 타입이 다르다는 것이다. Interface Name Abstract Method Remarks Function R apply(T t) 객체 T를 객체 R로 매핑 후 반환 BiFunction R apply(T t, U u) 객체 T, U를 객체 R로 매핑 후 반환 DoubleFunction R apply(double value) double 값을 객체 R로 매핑 후 반환 IntFunction R apply(int v..

1. Supplier 1) 매개값이 없고 반환값만 있는 함수적 인터페이스 2) 매개값이 없고 반환값만 있는 getXXX() 메소드를 가지고 있다. 3) 이들 메소드는 실행 후 호출한 곳으로 데이터를 반환하는 역할을 한다. Interface Name Abstract Method Remarks Suppplier T get() 객체를 반환 BooleanSuppplier boolean getAsBoolean() boolean 값을 반환 DoubleSuppplier double getAsDouble() double 값을 반환 IntSuppplier int getAsInt() int 값을 반환 LongSuppplier long getAsLong() long 값을 반환 Supplier 함수적 인터페이스의 종류 S..