Java TransferQueue
1. One 생산자 - Zero 소비자 TransferQueue에서 transfer() 메서드를 테스트한다. 예상되는 동작은 소비자가 take() 메서드를 사용하여 대기열에서 메시지를 받을 때까지 생산자가 차단된다는 것이다. 이를 달성하기 위해 생산자는 하나지만 소비자는 없는 프로그램을 만든다. 대기열에서 해당 요소를 가져올 소비자가 없기 때문에 생...
1. One 생산자 - Zero 소비자 TransferQueue에서 transfer() 메서드를 테스트한다. 예상되는 동작은 소비자가 take() 메서드를 사용하여 대기열에서 메시지를 받을 때까지 생산자가 차단된다는 것이다. 이를 달성하기 위해 생산자는 하나지만 소비자는 없는 프로그램을 만든다. 대기열에서 해당 요소를 가져올 소비자가 없기 때문에 생...
1. API 개요 SynchronousQueue에는 take() 및 put() 이라는 두 가지 작업만 지원되며 둘 다 차단된다. 예를 들어 큐에 요소를 추가하려면 put() 메서드를 호출해야 한다. 해당 메서드는 다른 스레드가 요소를 가져올 준비가 되었음을 알리는 take() 메서드를 호출할 때까지 차단된다. SynchronousQueue에는 대기...
1. BlockingQueue 유형 두 가지 유형의 BlockingQueue를 구분할 수 있다. 무제한 대기열 - 거의 무한정 커질 수 있음 제한된 대기열 - 최대 용량이 정의됨 1) 무제한 대기열 무제한 대기열을 만드는 것은 간단하다. BlockingQueue<String> blockingQue...
1. 요소의 우선순위 표준 대기열과 달리 PriorityBlockingQueue에는 어떤 유형의 요소도 추가할 수 없다. 두 가지 옵션이 있다. Comparable을 구현하는 요소 추가 Comparator도 제공한다는 조건으로 Comparable을 구현하지 않는 요소 추가 Comparator 또는 Compar...
1. 기본 Stream은 Collection에서 쉽게 얻을 수 있는 요소의 시퀀스이다. 맵은 시퀀스 없이 키에서 값으로 매핑되는 다른 구조를 가진다. 그러나 이것이 Map 구조를 다른 시퀀스로 변환할 수 없다는 의미는 아니다. 그러면 Stream API를 사용하여 자연스럽게 작업할 수 있다. 맵에서 다른 Collection을 얻는 방법을 살펴보고 ...
1. Map의 entrySet(), keySet(), values() 메서드 설명 세 가지 방법을 사용하여 맵을 반복하기 전에 이러한 방법이 수행하는 작업에 대한 설명이다. entrySet() - 요소가 Map.Entry 클래스에 있는 맵의 컬렉션 뷰를 반환한다. entry.getKey() 메서드는 키를 반환하고 entry.getVal...
1. 맵 반복 최적화 저자의 이름을 키로 하는 책 제목 맵이 있다고 가정한다. Map<String, String> map = new HashMap<>(); map.put("Robert C. Martin", "Clean Code"); map.put("Joshua Bloch", "Effective Java"); 맵에서 모든 키...
1. 초기화 두 개의 Map 인스턴스를 정의한다. private static Map<String, Employee> map1 = new HashMap<>(); private static Map<String, Employee> map2 = new HashMap<>(); Employee 클래스는 다음과 같다...
1. TreeMap 사용 TreeMap의 키는 자연 순서를 사용하여 정렬된다. 이는 키를 기준으로 키-값 쌍을 정렬하려는 경우 좋은 솔루션이다. 따라서 HashMap의 모든 데이터를 TreeMap으로 푸시하는 것이다. HashMap을 정의 하고 일부 데이터로 초기화한다. Map<String, Employee> map = new HashM...
1. Map.equals() 사용 Map.equals()를 사용하여 두 개의 HashMap에 동일한 항목이 있는지 확인한다. @Test public void whenCompareTwoHashMapsUsingEquals_thenSuccess() { Map<String, String> asiaCapital1 = new HashMap&l...