2. Iterator
Collection에서 data를 읽어들이는 방법을 제공
1) Collection 내부 구조
iterator라는 메소드로 Collection을 Iterator로 만들 수 있습니다.
2) Method
remove : 최근에 Iterator에서 return한 element를 제거
1> example 1
list는 List의 메소드만 사용이 가능합니다.
3) ListIterator
1> 특징
Iterator의 subclass
(뒤로만 갈 수 있었던 Iterator와 달리) 앞뒤로 왔다갔다하는 것이 가능합니다.
List interface를 implement한 class에만 사용 가능
2> Method
3. Arrays
array와 관련된 기능들을 제공합니다.
1) array 관련 기능
1> copyOf, copyOfRange
copyOf(arr, length) : arr를 처음부터 length개만큼을 복사(return)한다.
copyOfRange(arr, start, end) : arr를 start부터 end미만을 복사(return)한다.
2> fill, setAll
fill(arr, value) : arr의 모든 원소를 value로 채운다.
setAll(arr, function) : arr의 모든 원소를 function을 통해 채운다.
3> sort, binarySearch
sort(arr) : arr 내부를 오름차순으로 정렬
binarySearch(arr, value) : (arr이 정렬되어 있어야한다.)arr 내부에 value가 있는지 탐색하여 index를 알려(return)준다.
4> toString, deepToString
toString(arr) : arr을 string으로 만들어줍니다.
deepToString(arr) : 2D 이상의 arr을 string으로 만들어줍니다.
5> equals, deepEquals
equal(arr1, arr2) : arr1과 arr2가 같은지
deepEquals(arr1, arr2) : 2D 이상의 arr1과 arr2가 같은지
4. Comparable and Comparator
sort 메소드는 int나 float은 잘 정렬할 수 있지만, 정렬하지 못하는 object도 있습니다.
정렬하려면 element들이 comparable해야 합니다.
=> array의 element가 interface Comparable<T>를 implement해야 합니다.
ex> Integer라는 class는 Comparable<T>를 implement해서 정렬이 가능합니다.
1) comparable
1> Integer는 Comparable<Integer>를 implement했습니다.
(특히 Comparable interface의 compareTo를 정의했습니다.)
- 오름차순 : instance가 parameter보다 클 때, 1을 return해야 한다. (작으면 -1, 같으면 0을 return하기)
2> 2개 요소를 비교하는 예시
[1] instance의 salary가 작을 때 1을 return
-> 내림차순 정렬 -> salary가 작은 순으로 나열
[2] (만약 salary가 같다면) string의 알파벳 순으로 나열
2) Comparator
단순히 오름차순 혹은 내림차순이 아니라 우리가 원하는대로 순서를 정하고 싶을 때 Comparator를 implement
1> 내림차순 혹은 오름차순의 순서를 반대로 하고 싶은 경우
[1] Comparator<T>를 implement -> compare(T o1, T o2)를 구현
[2] o1과 o2가 Comparable의 instance인지 확인하고
[3] c1과 c2라는 Comparable로 형변환한다. (compareTo 함수를 사용하기 위해서)
[4] compareTo 함수를 사용하고 -1을 곱한다. (-1을 곱해서 order를 뒤집는다.)
2> 대소문자 구분을 하지 않는 방법
'JAVA' 카테고리의 다른 글
[Java] 6-4강 - Collection Framework 4 (Map) (0) | 2020.12.05 |
---|---|
[Java] 6-3강 - Collection Framework 3 (Set) (0) | 2020.12.05 |
[Java] 6-1강 - Collection Framework 1 (List - ArrayList, Vector, LinkedList, Stack & Queue) (0) | 2020.12.03 |
[Java] 6-0강 - Collection Framework (0) | 2020.12.03 |
[Java] 5-2강 - Generic Programming 2 (generic 기법 응용) (0) | 2020.12.03 |