Jam's story
25일차 본문
public class Ex01 {
public static void main(String[] args) {
ArrayList list=new ArrayList(5);
Random rnd=new Random();
for (int i = 0; i < 5; i++) {
list.add(rnd.nextInt(100)+1);
}
System.out.println(list);
Comparator c= new ListDescendingComparator();
list.sort(c);
System.out.println(list);
}
}
class ListDescendingComparator implements Comparator<Integer>{
public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
}
LinkedList 컬렉션 클래스
- 불연속 구조
- 비순차적으로 삭제/ 추가 (성능좋다 )
스택과 큐
스택: LIFO 한쪽이 막혀있어서 최근에 들어온 것이 나간다.
큐: FIFO 둘다 뚫려있어서 제일 처음에 들어온 것이 나간다.
스택의 메소드
peek()는 pop()과 달리 제거하지 않는다.
큐의 메소드
add, offer 둘다 추가하는 것이다.
저장공간이 부족하면
add- 예외 발생
offer- false 반환
큐는 인터페이스이기 때문에, new 연산자로 선언안함
PriorityQueue
저장한것에 상관없이 우선권이 높은 것부터 꺼내온다.
숫자인 경우에는 오름차순 정렬해서 가져온다.
Queue<Integer> q=new PriorityQueue<Integer>();
q.offer(3);
q.offer(5);
q.offer(2);
q.offer(1);
q.offer(4);
System.out.println(q);
while(!q.isEmpty()) {
int n=q.poll();
System.out.println(n);
}
1 2 3 4 5 순서로 출력되었으며, 문자열이면 ㄱ~ㅎ 순으로. ㄱ이 우선권이 제일 높다.
deque - double ended Queue
양쪽 끝에서 추가/추출이 가능하다.
deque 구현한 클래스 : LinkedList , Array
인터페이스 -컬렉션의 요소에 접근 (가져오기)
Iterator (신 - 반복자), ListIterator , Enumeration(구 -열거자 )
ListIterator =Iterator+향상된 기능
HashSet
중복X , 순서유지X
<> 에 기본형 x, 참조형o
.get(int index) 메소드는 쓰이지 않는다. - >순서가 없기 때문에
'Java' 카테고리의 다른 글
[컬렉션 프레임워크] - 스택 , 큐 (0) | 2022.03.25 |
---|---|
[컬렉션 프레임워크] -ArrayList (0) | 2022.03.24 |
24일차- 제네릭 프레임워크 (0) | 2022.03.23 |
23일차- 날짜와 시간, 형식화 (0) | 2022.03.22 |
22일차 (0) | 2022.03.21 |
Comments