PriorityQueue<Integer> priorityQueue = new PriorityQueue<>();
for(int i = 0; i < scoville.length; i++) {
priorityQueue.add(scoville[i]);
}
자바에서 PriorityQueue 선언 시 위와 같이 for 문을 돌려가면서 값을 넣을 것이 아니라 선언과 동시에 값을 넣어 Queue를 사용하려고 하는데 방법은 정말 간단하다
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(List.of(1,2,3));
PriorityQueue<Integer> priorityQueue = new PriorityQueue<>(List.of(Arrays.stream(scoville).boxed().toArray(Integer[]::new)));
List 같은 Collection을 상속받는 객체는 선언 시 new PriorityQueue<>() 에서 강조 표시한 부분에 Collection 상속받는 객체(List, Set ..)을 넣어주면 되고 배열을 넣을 경우에는 Integer 타입의 배열로 변경해준 뒤 List.of를 사용해서 List 타입으로 만들어서 넣어줘도 되는데 이건 좀 불편하기 때문에 이렇게 사용하느니 for 문을 돌리는 것이 좋아 보인다
Leave a Reply