본문 바로가기
JAVA BASE/Collection(컬렉션) - 자료구조

04. [자바] LinkedList 생성자, 메서드

by staticClass 2020. 12. 31.

다른 컬렉션, 자료구조가 궁금하다면 아래의 링크를 클릭하시라💡

 

01. [자바] 컬렉션 프레임워크(Collections Framework)

컬렉션 프레임워크란? 다수의 데이터를 다루는 데 필요한 배열과 비슷하지만 더 성능이 뛰어난 많은 클래스들을 제공한다 크게 3가지 그룹이 있는데 List, Set, Map이다. 계층도와 같이 Map인터페이

staticclass.tistory.com


 

LinkedList 클래스?

List를 구현한 컬렉션 이기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다
중간 데이터를 추가/삭제 하는 경우에는 LinkedList가 ArrayList보다 빠르다🌠

 

생성자 설명
LinkedList() LinkedList객체를 생성
LinkedList(Collection c) 주어진 컬렉션을 포함하는 LinkedList객체를 생성
LinkedList list1 = new LinkedList();      // LinkedList를 생성
LinkedList list2 = new LinkedList(list1); // 주어진 컬렉션을 포함하는 LinkedList객체를 생성

클릭시 해당 예제로 이동합니다!

메서드  설명 예제
Object get(in index) 지정된 위치(index)에 저장된 객체를 반환한다.
List subList(int fromIndex, int toIndex) fromIndex부터 toIndex사이에 저장된 객체를 List로 반환한다.
boolean add(Object obj) LinkedList의 마지막에 객체를 추가한다. 추가에 성공하면 true를 반환
void add(int index, Object element) 지정된 위치(index)에 객체를 저장한다.
자리에 있던 기존의 데이터는 뒤로 밀려나기만 할 뿐 삭제되지 않는다.
ex) add(2, Object) → 기존, 기존, 추가, 기존, 기존
void addAll(Collection c) 주어진 컬렉션의 모든 객체를 저장한다.(마지막 index의 뒤로 붙임)
ex) addAll(Collection) → 기존, 기존, 기존, 기존, 추가, 추가, ...
void addAll(int index, Collection c) 지정한 위치부터 주어진 컬렉션의 데이터를 저장한다.
자리에 있던 기존의 데이터는 뒤로 밀려나기만 할 뿐 삭제되지 않는다.
ex) addAll(2, Collection) → 기존, 기존, 추가, 추가, ... , 기존, 기존
Object set(int index, Object obj) 지정한 위치(index)의 객체를 주어진 객체(obj)로 바꾼다.
자리에 있던 기존의 데이터는 삭제되고 새로운 데이터가 대체되어 들어간다.
ex) set(2, Object) → 기존, 기존, 변경, 기존, 기존

Object remove(int index) 지정된 위치(index)에 있는 객체를 제거한다.
boolean remove(Object obj) 지정된 객체를 제거한다.(성공하면 true)
boolean removeAll(Collection c) 지정한 컬렉션에 저장된 것과 동일한 노드들을 LinkedList에서 제거한다.
boolean retainAll(Collection c) LinkedList에 저장된 객체 중에서 주어진 컬렉션과 
공통된 것들만 남기고 제거한다.
void clear() LinkedList를 완전히 비운다.
int size() LinkedList에 저장된 객체의 개수를 반환한다.
boolean isEmpty() LinkedList가 비어있는지 확인한다.
boolean contains(Object obj) 지정된 객체(obj)가 LinkedList에 포함되어 있는지 확인한다.
boolean containsAll(Collection c) 지정된 컬렉션의 모든 요소가 포함되었는지 알려줌.
int indexOf(Object obj) 지정된 객체(obj)가 저장된 위치를 찾아 반환한다.
int lastIndexOf(Object obj) 지정된 객체(obj)가 저장된 위치를 뒤에서 부터 역방향으로 찾아 반환한다.
Iterator iterator() LinkedList의 Iterator객체를 반환한다.
ListIterator listIterator() LinkedList의 ListIterator를 반환한다.
ListIterator listIterator(int index) LinkedList의 지정된 위치부터 시작하는 ListIterator를 반환한다.
Object[] toArray() LinkedList에 저장된 모든 객체들을 객체배열로 반환한다.
Object[] toArray(Obejct[] objArr) LinkedList에 저장된 모든 객체들을 객체배열 objArr에 담아 반환한다.
Object element() LinkedList에 첫 번째 노드를 반환

boolean offer(Obejct obj) 지정된 객체(obj)를 LinkedList의 끝에 추가.
성공하면 true 실패하면 false
Object peek() LinkedList의 첫 번째 요소를 반환
Object poll() LinkedList의 첫 번째 요소를 반환
LInkedList의 요소에서는 제거된다.
Object remove() LinkedList의 첫 번째 요소를 제거
void addFirst(Object obj) LinkedList의 맨 앞에 객체(obj)를 추가
void addLast(Objec obj) LinkedList의 맨 뒤에 객체(obj)를 추가
void push(Object obj) 맨 앞에 객체(obj)를 추가 (addFirst와 동일)
Iterator descendingItorator() 역순으로 조회하기 위한 DescendingItorator를 반환
Object getFrist() LinkedList의 첫번째 노드를 반환
Object getLast() LinkedList의 마지막 노드를 반환
boolean offerFirst(Object obj) 지정된 객체(obj)를 LinkedList의 맨 앞에 추가, 성공하면 ture
boolean offerLast(Object obj) 지정된 객체(obj)를 LinkedList의 맨 뒤에 추가, 성공하면 ture
Object peakFirst() 첫번째 노드를 반환
Object peakLast() 마지막 노드를 반환
Object pollFirst() 첫번째 노드를 반환하면서 제거
Object pollLast() 마지막 노드를 반환하면서 제거
Obejct removeFirst() 첫번째 노드를 제거
Object removeLast() 마지막 노드를 제거
Object pop() 첫번째 노드를 제거 (removeFirst와 동일)
boolean removeFirstOccurrence(
Obejct obj)
첫번째로 일치하는 객체를 제거
boolean removeLastOccurrence(
Obejct obj)
마지막으로 일치하는 객체를 제거

 

 

예제

get(in index)

LinkedList list1 = new LinkedList();
list1.add(1);
list1.add(2);
System.out.println(list1.get(1));
// [2]

🔝

subList(int fromIndex, int toIndex)

LinkedList list1 = new LinkedList();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);
System.out.println(list1.subList(1, 3));
// [2, 3]

🔝

add(Object obj)

LinkedList list1 = new LinkedList();
list1.add(1);
list1.add(2);
System.out.println(list1);
// [1, 2]

🔝

add(int index, Object element)

LinkedList list1 = new LinkedList();
list1.add(1);
list1.add(2);
list1.add(3);

list1.add(1, 4); // index 1 에 숫자 4를 추가
System.out.println(list1);
// [1, 4, 2, 3]

🔝

addAll(Collection c)

LinkedList list1 = new LinkedList();
list1.add("list1");
list1.add("list1");
LinkedList list2 = new LinkedList();
list2.add("list2");
list2.add("list2");
list1.addAll(list2); // list1에 list2의 내용을 추가한다.

System.out.println(list1);
// [list1, list1, list2, list2]

🔝

addAll(int index, Collection c)

LinkedList list1 = new LinkedList();
list1.add("list1");
list1.add("list1");
LinkedList list2 = new LinkedList();
list2.add("list2");
list2.add("list2");
list1.addAll(1, list2);

System.out.println(list1);
// [list1, list2, list2, list1]

🔝

set(int index, Object obj)

LinkedList list1 = new LinkedList();
list1.add("list1");
list1.add("list1");
list1.add("list1");

list1.set(1, "setData"); // index 1번의 데이터를 문자열 "setData"로 변경한다.
System.out.println(list1);
// [list1, setData, list1]

🔝

remove(int index)

LinkedList list1 = new LinkedList();
list1.add("1");
list1.add("2");
list1.add("3");

list1.remove(1); //index 1의 데이터 삭제
System.out.println(list1);
// [1, 3]

🔝

remove(Object obj)

LinkedList list1 = new LinkedList();
list1.add("1");
list1.add("2");
list1.add("3");

list1.remove("1"); //"1"인 데이터와 일치하는 데이터 삭제
System.out.println(list1);
// [2, 3]

🔝

removeAll(Collection c)

LinkedList list1 = new LinkedList();
list1.add("1");
list1.add("2");
list1.add("3");

LinkedList list2 = new LinkedList();
list2.add("1");
list2.add("2");

list1.removeAll(list2); // list1의 데이터에서 list2와 일치하는 데이터 삭제
System.out.println(list1);
// [3]

🔝

retainAll(Collection c)

LinkedList list1 = new LinkedList();
list1.add("1");
list1.add("2");
list1.add("3");

LinkedList list2 = new LinkedList();
list2.add("1");
list2.add("2");

//list1의 데이터와 list2의 데이터를 비교해서 일치하지 않는 데이터만 제거
list1.retainAll(list2);  
System.out.println(list1);
// [1,2]

🔝

clear()

LinkedList list1 = new LinkedList();
list1.add("1");
list1.add("2");
list1.add("3");

list1.clear(); // list1의 데이터를 모두 비운다.
System.out.println(list1);
// []

🔝

size()

LinkedList list1 = new LinkedList();
list1.add("1");
list1.add("2");
list1.add("3");

System.out.println(list1.size()); // list1에 저장된 객체의 개수를 반환한다.
// 3

🔝

isEmpty()

LinkedList list1 = new LinkedList();
list1.add("1");
list1.add("2");
list1.add("3");

System.out.println(list1.isEmpty()); // 비어있지 않으면 false

LinkedList list2 = new LinkedList();
System.out.println(list2.isEmpty()); // 비어있으면 true
// false
// true

🔝

 

contains(Object obj)

LinkedList list1 = new LinkedList();
list1.add("3");
list1.add("2");
list1.add("1");

System.out.println(list1.contains("1")); // list1안에 "1"이 있는지 확인
// true

🔝

containsAll(Collection obj)

LinkedList list1 = new LinkedList();
list1.add("1");
list1.add("2");

LinkedList list2 = new LinkedList();
list2.add("2");
list2.add("3");

// list1에 list2의 모든 노드가 포함되어 있는지 확인
System.out.println(list1.containsAll(list2)); 
// false

🔝

indexOf(Object obj)

LinkedList list1 = new LinkedList();
list1.add("0");
list1.add("1");
list1.add("2");
list1.add("3");
// list1안에 "0"의 위치는 반환 받는다. (앞에서 부터 검색)
System.out.println(list1.indexOf("0")); 
// 0

🔝

lastIndexOf(Object obj)

LinkedList list1 = new LinkedList();
list1.add("0");
list1.add("1");
list1.add("2");
list1.add("3");
// list1안에 "0"의 위치는 반환 받는다. (뒤에서 부터 검색)
System.out.println(list1.lastIndexOf("0"));
// 0

🔝

iterator()

LinkedList list1 = new LinkedList();
list1.add("0");
list1.add("1");
list1.add("2");
list1.add("3");

Iterator it = list1.iterator();

while(it.hasNext()) {
	Object obj = it.next();
	System.out.println(obj);
}
// 0
// 1
// 2
// 3

🔝

listIterator()

LinkedList list1 = new LinkedList();
list1.add("0");
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");

ListIterator it = list1.listIterator(); // LinkedList의 ListIterator를 반환한다

while(it.hasNext()) {
	System.out.print(it.next());
}
System.out.println();
while(it.hasPrevious()) {
	System.out.print(it.previous());
}
// 01234
// 43210

🔝

listIterator(int index)

LinkedList list1 = new LinkedList();
list1.add("0");
list1.add("1");
list1.add("2");
list1.add("3");
list1.add("4");
// index 2에서 시작하는 ListIterator를 반환한다.
ListIterator it = list1.listIterator(2); 

while(it.hasNext()) {
	System.out.print(it.next());
}
// 234

🔝

toArray()

LinkedList list1 = new LinkedList();
list1.add(1);
list1.add(2);
list1.add(3);
list1.add(4);

Object[] arr = list1.toArray();
System.out.println(Arrays.toString(arr));
// [1, 2, 3, 4]

🔝

toArray(Obejct[] objArr)

LinkedList list1 = new LinkedList();
list1.add(1);
list1.add(2);

Object[] arr1 = {0, 1, 2, 3, 4, 5};
Object[] arr = list1.toArray(arr1);
System.out.println(Arrays.toString(arr));
// [1, 2, null, 3, 4, 5]

🔝

댓글