오늘은 LinkedList에 대해서 정리할텐데, 이는 우리가 아주 잘 아는 자료구조 중 하나이다. 가장 일반적인 '단방향 LinkedList'의 경우, 하나의 노드의 포인터가 다음노드를 가리키는 식으로 되어있어 연결된(Linked) 구조를 갖는다.
예제 - LinkedList
(1) getFirtst , element , peek
LinkedList<Pet> pets = new LinkedList<Pet>(Pets.arrayList(5)); System.out.println(pets); System.out.println("pets.getFirst() : " + pets.getFirst()); System.out.println("pets.element() : " + pets.element()); System.out.println("pets.peek() : " + pets.peek());> 결과
[Rat, Manx, Cymric, Mutt, Pug] pets.getFirst() : Rat pets.element() : Rat pets.peek() : Rat일단 이 세 메소드는 동일하다. 가장 첫번째 요소를 반환한다. 단지 element() 메소드는 getFirst() 메소드의 'alias' 일뿐이고, peek() 메소드는 리스트가 비어있을 때 null을 반환한다.
(2) remove , removeFirst , poll
LinkedList<Pet> pets = new LinkedList<Pet>(Pets.arrayList(5)); System.out.println("pets.remove() : " + pets.remove()); System.out.println("pets.removeFirst() : " + pets.removeFirst()); System.out.println("pets : " + pets); System.out.println("pets.poll() : " + pets.poll()); System.out.println("After pets.poll() : " + pets);> 결과
[Rat, Manx, Cymric, Mutt, Pug] pets.remove() : Rat pets.removeFirst() : Manx pets : [Cymric, Mutt, Pug] pets.poll() : Cymric After pets.poll() : [Mutt, Pug]
세 메소드 역시 동일하며 remove()는 removeFirst()의 alias이다. 가장 첫번째 요소를 삭제하면서 반환한다. poll() 메소드는 리스트가 비어있을때 null을 반환한다.
(3) addFirst , offer , add , addLast
LinkedList<Pet> pets = new LinkedList<Pet>(Pets.arrayList(5)); System.out.println(pets); pets.addFirst(new Rat()); System.out.println("After addFirst() : " + pets); pets.offer(Pets.randomPet()); System.out.println("After offer() : " + pets); pets.add(Pets.randomPet()); System.out.println("After add() : " + pets); pets.addLast(new Hamster()); System.out.println("After addLast() : " + pets);> 결과
[Rat, Manx, Cymric, Mutt, Pug] After addFirst() : [Rat, Rat, Manx, Cymric, Mutt, Pug] After offer() : [Rat, Rat, Manx, Cymric, Mutt, Pug, Cymric] After add() : [Rat, Rat, Manx, Cymric, Mutt, Pug, Cymric, Pug] After addLast() : [Rat, Rat, Manx, Cymric, Mutt, Pug, Cymric, Pug, Hamster]요소를 추가하는 메소드들이다. addFirst() 는 리스트의 맨앞에 요소를 추가하며, 나머지 세 메소드 offer(), add(), addLast()는 리스트의 끝에 요소를 추가한다.
(4) remove
LinkedList<Pet> pets = new LinkedList<Pet>(Pets.arrayList(5)); System.out.println(pets); System.out.println("pets.removeLast() : " + pets.removeLast()); System.out.println("After removeLast() : " + pets);>결과
[Rat, Manx, Cymric, Mutt, Pug] pets.removeLast() : Pug After removeLast() : [Rat, Manx, Cymric, Mutt]remove() 메소드는 리스트의 맨끝 요소를 반환하며 삭제한다.
댓글 없음:
댓글 쓰기