링크드 리스트(LinkedList)
by BBarkji
자료구조
리스트
링크드 리스트(Linked List)
배열처럼 데이터 집합을 보관하는 기능을 가지면서도 배열과는 달리 유연하게 크기를 바꿀 수 있는 자료구조 = 리스트. 링크드 리스트는 리스트를 구현하는 여러가지 기법 중 가장 간단한 방법이다.
특징은, 값의 추가/삽입/삭제는 빠르나 특정 위치에 있는 값을 찾는 연산은 느리다. 따라서 적합한 곳은 레코드의 추가/삽입/삭제가 잦고, 조회는 드문 곳이다. 데이터베이스에서 조회해온 레코드를 순차적으로 다루는 데에 제격이다.
선언방법
LinkedList list = new LinkedList();
LinkedList<Customer> list = new LinkedList<Customer>();
LinkedList<Integer> list = new LinkedList<Integer>();
LinkedList<Integer> list = new LinkedList<>();
LinkedList<Integer> list = new LinkedList<Integer>(Arrays.asList(1,2,3));
링크드 리스트의 주요 연산
#### 값 추가
LinkedList<Integer> list = new LinkedList<Integer>();
list.addFirst(1); //맨 앞에 추가
list.addLast(2); //맨 뒤에 추가
list.add(3); //가장 마지막에 데이터 추가
list.add(1, 10); //index 1뒤에 데이터 10추가
LinkedList<Member> members = new LinkedList<>();
Student student = new Student(name, age);
members.add(student);
members.add(new Student("홍길동", 15));
값 삭제
LinkedList<Integer> list = new LinkedList<Integer>(Arrays.asList(1,2,3));
list.removeFirst(); //맨 앞 제거
list.removeLast(); //맨 뒤 제거
list.remove(); //0번째 제거
list.remove(1); //1번째 재거
list.clear(); //모두 제거
크기 구하기
LinkedList<Integer> list = new LinkedList<Integer>(Arrays.asList(1,2,3));
list.size(); // 3
값 출력하기
LinkedList<Integer> list = new LinkedList<Integer>(Arrays.asList(1,2,3));
// for문 이용
for(Integer i : list) {
System.out.println(i);
}
// Iterator 이용
Iterator<Integer> iter = list.iterator();
while(iter.hasNext()) {
System.out.println(iter.next());
}
// 특정 인덱스만 얻기
list.get(인덱스);
값 검색
LinkedList<Integer> list = new LinkedList<Integer>(Arrays.asList(1,2,3));
boolean result = list.contains(1); // 있으면 true
int result = list.indexOf(1); // 있으면 index 반환, 없으면 -1
Subscribe via RSS