> For the complete documentation index, see [llms.txt](https://seungyeon-kang.gitbook.io/yeons-frame/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://seungyeon-kang.gitbook.io/yeons-frame/study-1/algorithm/intro/3.-for-each.md).

# For-Each

## 기본 forans vs 향상된 for문

```
# 기본 for문
for (int i = 0; i < al.size(); i++){
    int now = al.get(i);
    System.out.print(now)
}

# 향상된 for문
for (int i : al){
    System.out.println(i + " ");
}
```

* 향상된 for문(for-each문)을 사용하면 코드가 간결해진다.
* 속도나 메모리면에서 일반적인 for문과 큰 차이가 없다.

## Priority Queue의 경우 주의 사항

```
// 
PriorityQueue<Integer> pq = new PriorityQueue<>();
pq.offer(4);
pq.offer(5);
pq.offer(1);
pq.offer(2);
pq.offer(3);

for (int i : pq){
    System.out.print(i + " ");
}
while(!pq.isEmpty()) {
    System.out.print(pq.poll() + " ");
}

>>>
1 2 4 5 3
1 2 3 4 5 (정상적인 PQ 사용 결과)
```

* 우선순위 큐 경우, poll로 꺼내야 정렬된 순으로 값을 얻을 수 있다.

그냥 큐를 쓰면 어떨까?
