java/개념
LinkedList<E> 클래스
unhyepnhj
2024. 6. 10. 12:23
LinkedList<E>
- java.util.LinkedList
- List<E> 인터페이스를 구현한 컬렉션 클래스
- Vector, ArrayList 클래스와 유사하게 작동
- 맨 앞과 맨 뒤를 가리키는 head, tail 레퍼런스
- 인덱스를 이용하여 요소에 접근 가능
LinkedList<String> l = new LinkedList<String>();

Collections 클래스
- java.util 패키지에 포함
- 컬렉션을 다루는 여러 메소드 지원
- sort(): 컬렉션에 포함된 요소들 정렬
- reverse(): 요소를 반대 순으로 정렬
- max(), min(): 요소들의 최댓값과 최솟값 찾아내기
- binarySearch(): 이진 검색
- 컬렉션에 대해 연산을 수행하고 결과로 컬렉션 리턴
- Collections 클래스의 모든 메소드는 static 타입이므로 Collections 객체를 생성할 필요 없음
예제 7-8 Collections 클래스를 활용하여 문자열 정렬, 반대로 정렬, 이진 검색 실행하는 사례
import java.util.*;
public class CollectionEx {
static void printList(LinkedList<String> l) { //리스트 요소 출력 메소드
Iterator<String> it=l.iterator();
while(it.hasNext()) {
String element=it.next();
String separator;
if(it.hasNext()) separator="->"; //현재 요소가 마지막 요소가 아닐 때
else separator="\n"; //현재 요소가 마지막 요소일 때
System.out.print(element+separator);
}
}
public static void main(String[] args) {
LinkedList<String> l=new LinkedList<String>();
l.add("트랜스포머");
l.add("스타워즈");
l.add("매트릭스");
l.add(0, "터미네이터");
l.add(2, "아바타");
Collections.sort(l); //정렬
printList(l);
Collections.reverse(l); //반대로 정렬
printList(l);
int index=Collections.binarySearch(l, "아바타"); //이진 검색
System.out.println("아바타는 "+(index+1)+"번째 요소입니다");
}
}

String element=it.next()를 따로 선언하지 않고
밑에서 그냥 System.out.println(it.next()+separator); 로 출력하니까 줄바꿈이 안 되고 "->"이 출력됐다
String element=it.next()를 선언해서 it.next()를 한 번만 호출해야 되는 것 같다