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()를 한 번만 호출해야 되는 것 같다