목차
LinkedList 정의
ArrayList / LinkedList 비교 (유사점/차이점)
LinkedList 전용 메서드
LinkedList 정의
ArrayList 기능과 아주 유사한 자료 집합.
단, 약간의 차이점 존재. 아래서 따로 설명.
[예제] Hz.java
import java.util.LinkedList;
public class Hz {
public static void main(String[] args) {
LinkedList<String> codes = new LinkedList<String>();
codes.add("HTML");
codes.add("CSS");
codes.add("JS");
codes.add("PHP");
System.out.println(codes);
}
}
결과값: [HTML, CSS, JS, PHP]
ArrayList / LinkedList 비교 (유사점/차이점)
[유사점]
1.
둘 다, 동일 유형의 많은 객체를 포함 가능한 컬렉션
2.
둘 다 List 인터페이스 구현하는 클래스라 동일 메서드 보유.
즉, (요소추가/요소변경/요소제거/List제거) 방식이 동일함.
[차이점]
ArrayList 클래스
① 작동방식:
내부에 일반 배열이 존재해, 요소 추가 시 배열에 배치됨.
만약, 배열이 충분히 크지 않으면 이전 배열 대체 위해 새롭고 더 큰 배열이 생성되고 이전 배열이 제거됨.
② 사용경우:
임의의 요소에 자주 접근할 필요가 있거나,
리스트 끝에 요소 추가/제거만 할 때 적합.
LinkedList 클래스
① 작동 방법:
"컨테이너"에 요소 저장. 리스트에는 첫 번째 컨테이너에 대한 링크가 있고 각 컨테이너에는 리스트의 다음 컨테이너에 대한 링크가 존재.
만약, 리스트에 요소 추가 위해 요소는 새 컨테이너에 배치되고 해당 컨테이너는 리스트의 다른 컨테이너 중 하나에 연결됨.
② 사용 경우:
반복문 통해 각 요소에 접근할 필요가 있거나,
자주 요소를 추가/제거해야 하는 경우에 적합.
LinkedList 전용 메서드
ArrayList는 임의의 요소에 자주 접근할 필요 있을 때 유리하나,
LiskedList는 요소 (추가/제거/접근) 관련 더 효율적 메서드 제공.
(예)
addFirst() 메서드 : 리스트 시작 부분에 요소 추가.
addLast() 메서드 : 리스트 끝 부분에 요소 추가.
removeFirst() 메서드 : 리스트 시작 부분의 요소 제거.
removeLast() 메서드 : 리스트 끝 부분의 요소 제거.
getFirst() 메서드 : 리스트 시작 부분의 요소에 접근.
getLast() 메서드 : 리스트 끝 부분의 요소에 접근.
addFirst() 메서드
리스트 시작 부분에 요소 추가.
(예제) Hz.java
import java.util.LinkedList;
public class Hz {
public static void main(String[] args) {
LinkedList<String> codes = new LinkedList<String>();
codes.add("CSS");
codes.add("JS");
codes.add("PHP");
codes.addFirst("HTML");
System.out.println(codes);
}
}
결과값: [HTML, CSS, JS, PHP]
addLast() 메서드
리스트 끝 부분에 요소 추가.
(예제) Hz.java
import java.util.LinkedList;
public class Hz {
public static void main(String[] args) {
LinkedList<String> codes = new LinkedList<String>();
codes.add("HTML");
codes.add("CSS");
codes.add("JS");
codes.addLast("PHP");
System.out.println(codes);
}
}
결과값: [HTML, CSS, JS, PHP]
removeFirst() 메서드
리스트 시작 부분의 요소 제거.
(예제) Hz.java
import java.util.LinkedList;
public class Hz {
public static void main(String[] args) {
LinkedList<String> codes = new LinkedList<String>();
codes.add("HTML");
codes.add("CSS");
codes.add("JS");
codes.add("PHP");
codes.removeFirst();
System.out.println(codes);
}
}
결과값: [CSS, JS, PHP]
removeLast() 메서드
리스트 끝 부분의 요소 제거.
(예제) Hz.java
import java.util.LinkedList;
public class Hz {
public static void main(String[] args) {
LinkedList<String> codes = new LinkedList<String>();
codes.add("HTML");
codes.add("CSS");
codes.add("JS");
codes.add("PHP");
codes.removeLast();
System.out.println(codes);
}
}
결과값: [HTML, CSS, JS]
getFirst() 메서드
리스트 시작 부분의 요소에 접근.
(예제) Hz.java
import java.util.LinkedList;
public class Hz {
public static void main(String[] args) {
LinkedList<String> codes = new LinkedList<String>();
codes.add("HTML");
codes.add("CSS");
codes.add("JS");
codes.add("PHP");
System.out.println(codes.getFirst() );
}
}
결과값: HTML
getLast() 메서드
리스트 끝 부분의 요소에 접근.
(예제) Hz.java
import java.util.LinkedList;
public class Hz {
public static void main(String[] args) {
LinkedList<String> codes = new LinkedList<String>();
codes.add("HTML");
codes.add("CSS");
codes.add("JS");
codes.add("PHP");
System.out.println(codes.getLast() );
}
}
결과값: PHP
주소 복사
랜덤 이동
최신댓글