다른 컬렉션, 자료구조가 궁금하다면 아래의 링크를 클릭하시라💡
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]
댓글