20/11/10

아라·2020년 11월 10일
0

국비교육

목록 보기
21/30

Arrays.binarySearch(this.list, value)

이진탐색알고리즘을 이용하여 검색.

HashMap

ArrayList vs HashMap

  • ArrayList : List인터페이스를 구현한 배열(Array). 스칼라 배열(Scalar Array) -> 요소들간의 구분이 쉽지 않음. 방번호는 의미를 가지지 않기 때문.
  • HashMap : Map인터페이스를 구현 + Hash알고리즘 사용 배열. 사전구조(Dictionary). 맵(Map). 연관배열. 방번호가 없음 -> 요소들의 순서가 없음. 키(Key)와 값(Value)으로 데이터를 관리. 일괄접근 불가능 -> 일괄접근 안하려고 만든 데이터구조. 요소의 의미를 알기 쉬움. 키는 유일해야 함!
// HashMap 사용법
		
	// 생성
	HashMap<String, Integer> map=new HashMap<String, Integer>();
	
	// 1.요소 추가
	// T put(T key, T value)
	map.put("국어", 100);
	map.put("영어", 90);
	map.put("수학", 80);
	
	// 2. 요소 개수
	System.out.println(map.size());
		
	// 3. 요소 접근
	System.out.println(map.get("국어"));
	System.out.println(map.get("영어"));
	System.out.println(map.get("수학"));
	System.out.println(map.get("과학"));
	
	// 4. 수정하기
	// 수정되기 전 값이 반환값
	map.put("국어", 98);
	System.out.println(map.get("국어"));
	System.out.println(map.getOrDefault("영어", 0));
    	// 없으면 Default로 지정한 값 반환
		
	// 5. 검색
	System.out.println(map.containsKey("국어"));
	System.out.println(map.containsValue(100));
	
	// 6. 삭제
	map.remove("국어");
	System.out.println(map.size());
	
	// 7. 초기화
	map.clear();
	System.out.println(map.size());

Queue

Queue<String> queue=new LinkedList<String>();
// =========================
//-> 노랑     파랑     빨강 ->
// =========================
queue.add("빨강");
queue.add("파랑");
queue.add("노랑");

System.out.println(queue);
System.out.println(queue.size());

System.out.println(queue.poll());
System.out.println(queue.size());

System.out.println(queue.poll());
System.out.println(queue.size());

System.out.println(queue.poll());
System.out.println(queue.size());

System.out.println(queue.poll()); // 꺼내기. 다 뽑고 또 poll하면 null 반환.
System.out.println(queue.size());
	
queue.add("빨강");
queue.add("주황");
queue.add("노랑");
queue.add("초록");
queue.add("파랑");
queue.add("남색");
queue.add("보라");

System.out.println(queue.peek()); // 보이긴 하지만 size 변화는 없음.
		
//루프
// 1. for문
int size=queue.size();

for(int i=0;i<size;i++) {
	System.out.println(queue.poll());
	System.out.println(queue.size());
}

// 2. while문
while(queue.size()>0) {
	System.out.println(queue.poll());
	System.out.println(queue.size());
}

// 3. 향상된 for문 -> 이 방식은 사용 불가! 이건 큐가 아님! 꺼내면서 사라지지 않기 때문.
for(String color:queue) {
	System.out.println(color);
}

Stack

Stack<String> stack=new Stack<String>();
//  =========================
//<=>  노랑     파랑    빨강   ㅒ <- 막혔음!
//  =========================

stack.push("빨강");
stack.push("파랑");
stack.push("노랑");

System.out.println(stack.pop());
System.out.println(stack.size());

System.out.println(stack.pop());
System.out.println(stack.size());

System.out.println(stack.pop());
System.out.println(stack.size());
		
System.out.println(stack.pop()); // 빈 stack에 pop하면 java.util.EmptyStackException 발생
System.out.println(stack.size());

if (!stack.isEmpty()) {
	System.out.println(stack.pop());
	System.out.println(stack.size());
}

stack.push("빨강");
stack.push("파랑");
stack.push("노랑");
		
System.out.println(stack.peek());
System.out.println(stack.size());

// while문
while(!stack.isEmpty()) {
	System.out.println(stack.pop());
}

0개의 댓글